import streamlit as st def render_sidebar(): """ Sidebar with all controls for the research companion app. Returns: - query (str): The user's main research query. - num_results (int): Max number of papers to show. - theme (str): 'Light' or 'Dark'. - search_clicked (bool): Did user click Search? - gemini_prompt (str): Optional Gemini Q&A question. - mcp_codegen_prompt (str): Prompt for code generation. - codegen_clicked (bool): Did user click Generate Code? """ st.sidebar.title("🚀 MCP Research Companion") query = st.sidebar.text_input( label="Enter your research topic:", value="", placeholder="e.g. CRISPR delivery" ) num_results = st.sidebar.slider( label="Max papers to display", min_value=1, max_value=20, value=5 ) theme = st.sidebar.selectbox( label="Theme", options=["Light", "Dark"], index=0 ) gemini_prompt = st.sidebar.text_input( label="💡 Ask Gemini (about anything!):", value="", placeholder="e.g. Summarize the latest CRISPR techniques" ) # New: MCP server codegen st.sidebar.markdown("---") st.sidebar.subheader("🛠️ MCP Server Codegen (Gemini)") mcp_codegen_prompt = st.sidebar.text_area( label="Describe the MCP server you want (plain English):", value="", placeholder="e.g. Write a Python MCP server for OpenWeatherMap with get_current_weather tool." ) codegen_clicked = st.sidebar.button("Generate MCP Code") search_clicked = st.sidebar.button("Search") return query, num_results, theme, search_clicked, gemini_prompt, mcp_codegen_prompt, codegen_clicked