mgbam's picture
Update components/sidebar.py
e9bd6d3 verified
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