Research Assistant
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Research AssistantSearch for 2 papers on LLM interpretability"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Walkthrough
A step-by-step walkthrough of the Model Context Protocol (MCP) using FastMCP and OpenAI.
What is MCP? The Model Context Protocol (MCP) is an open standard that enables AI models to securely connect to local and remote data sources, tools, and systems. Think of it as a "USB-C plug for AI".
๐ For a detailed overview of MCP, its architecture, and benefits, please read MCP.md.
Setup
# Install dependencies
uv sync
# Create .env with your OpenAI API key
echo "OPENAI_API_KEY=sk-..." > .envRelated MCP server: arXiv MCP Server
Project Structure
.
โโโ mcp_research_server.py # MCP server with tools, resources, and prompts
โโโ mcp_chatbot.py # Multi-server MCP chatbot (tools only)
โโโ mcp_chatbot_resource_prompt_tool.py # Full chatbot with tools + resources + prompts
โโโ server_config.json # MCP server configuration
โโโ papers/ # Stored paper data (created at runtime)
โโโ examples/ # Step-by-step build-up files
โ โโโ chatbot_tool_usage.py # 1. OpenAI tool calling without MCP
โ โโโ mcp_chatbot.py # 2. Single MCP server chatbot
โโโ pyproject.tomlProgression
The files show a step-by-step build-up (earlier steps are in examples/):
**examples/chatbot_tool_usage.py**โ Tool calling with OpenAI (no MCP). Defines tools as Python functions, manually creates JSON schemas, and wires up the tool execution loop.**examples/mcp_chatbot.py**โ Single MCP server chatbot. Replaces manual tool definitions with an MCP client that discovers tools from the server automatically.**mcp_chatbot.py**โ Multi-server chatbot. Connects to multiple MCP servers viaserver_config.json, routes tool calls to the correct server.**mcp_chatbot_resource_prompt_tool.py**โ Full-featured chatbot. Adds support for MCP resources (@folders,@<topic>) and prompts (/prompt <name> <args>).
MCP Server
mcp_research_server.py exposes:
Tools:
search_papers(topic, max_results)โ Search arXiv and store paper infoextract_info(paper_id)โ Get stored info for a specific paper
Resources:
papers://foldersโ List available topic folderspapers://{topic}โ Get paper details for a topic
Prompts:
generate_search_prompt(topic, num_papers)โ Generate a structured research prompt
MCP Inspector UI
To inspect the MCP server in sandbox environment, run:
npx @modelcontextprotocol/inspector uv run mcp_research_server.pyRunning the Chatbot
Chatbot Tool Usage Example
โฏ uv run chatbot_tool_usage.py
User: Hi
Hello! How can I assist you today?
User: WHat are available tools that you can use?
I have access to the following tools:
1. **Paper Search Tool**: This tool allows me to search for papers on arXiv based on a specific topic and retrieve their information.
2. **Paper Info Extraction Tool**: This tool enables me to search for detailed information about a specific paper using its ID.
If you have any specific needs regarding research papers or topics, feel free to ask!
User: Search for 2 papers on "LLM interpretability"
Calling tool: search_papers with arguments: {'topic': 'LLM interpretability'}
Results are saved in: papers/llm_interpretability/papers_info.json
Calling tool: extract_info with arguments: {'paper_id': '2602.00462v3'}
Calling tool: extract_info with arguments: {'paper_id': '2407.04307v1'}
Here are two papers related to "LLM interpretability":
1. **Title**: [LatentLens: Revealing Highly Interpretable Visual Tokens in LLMs](https://arxiv.org/pdf/2602.00462v3)
**Authors**: Benno Krojer, Shravan Nayak, Oscar Maรฑas, Vaibhav Adlakha, Desmond Elliott, Siva Reddy, Marius Mosbach
**Published**: January 31, 2026
**Summary**: This paper introduces "LatentLens," a method for mapping latent representations to natural language descriptions, allowing for improved interpretability of visual tokens when integrated with large language models (LLMs). The approach evaluates visual token representations across various vision-language models (VLMs), revealing that existing methods underestimate their interpretability. The findings suggest a close alignment between vision and language representations.
2. **Title**: [Crafting Large Language Models for Enhanced Interpretability](https://arxiv.org/pdf/2407.04307v1)
**Authors**: Chung-En Sun, Tuomas Oikarinen, Tsui-Wei Weng
**Published**: July 5, 2024
**Summary**: This paper presents the Concept Bottleneck Large Language Model (CB-LLM), which aims to achieve inherent interpretability in LLMs. It features a built-in interpretability system and an Automatic Concept Correction (ACC) strategy that allows the model to maintain high accuracy while providing clear and accurate explanations, therefore enhancing transparency in language models.
If you need further details or assistance, feel free to ask!
User: bye
Goodbye!Chatbot with MCP Client
โฏ uv run create_mcp_client.py
[02/27/26 00:52:01] INFO Starting MCP server 'Research Assistant ๐' with transport 'stdio' transport.py:183
Connected to server with tools: ['search_papers', 'extract_info']
User: hi
Hello! How can I help today? I can help you find papers on a topic, summarize articles, answer questions, or brainstorm ideas. Do you have a topic in mind or a task you'd like to tackle?
User: can you search for papers around physics and find just two of them for me
Calling tool: search_papers with arguments: {'topic': 'physics', 'max_results': 2}
Calling tool: extract_info with arguments: {'paper_id': '1910.11775v2'}
Calling tool: extract_info with arguments: {'paper_id': 'hep-ex/9605011v1'}
Here are two physics-related papers I found (as requested, I kept it to two):
- 1910.11775v2
- Title: Physics Briefing Book
- Authors: European Strategy for Particle Physics Preparatory Group
- Published: 2019-10-25
- Summary: A concise briefing book for the European Strategy Update process, summarizing community inputs and discussions on proposed projects and their importance.
- PDF: https://arxiv.org/pdf/1910.11775v2
- hep-ex/9605011v1
- Title: Physics and Technology of the Next Linear Collider: A Report Submitted to Snowmass '96
- Authors: NLC ZDR Design Group; NLC Physics Working Group; S. Kuhlman
- Published: 1996-05-30
- Summary: Overview of the design and physics program for a future e+eโ linear collider (500 GeV โ 1 TeV) and its feasibility.
- PDF: https://arxiv.org/pdf/hep-ex/9605011v1
Would you like me to fetch more details (e.g., full abstracts, BibTeX entries) or open/download the PDFs?Chatbot with Multiple MCP Servers
Input: Fetch ai.facebook.com, find an interesting term to search papers around, then summarize the findings and write them to a file called results.md
โฏ uv run mcp_chatbot.pyTools, Resources, and Prompts
uv run mcp_chatbot_resource_prompt_tool.pyCommands:
@foldersโ List available topics@<topic>โ View papers for a topic/promptsโ List available prompts/prompt <name> <arg1=value1>โ Execute a prompt
Example โ Listing resources:
Query: @folders
Resource: papers://folders
Content:
# Available Topics
- llm_interpretability
- chemistry
- machine_learning
- multimodal_transformers
- self-supervised_learning
- physics
Use @physics to access papers in that topic.Example โ Reading a dynamic resource:
Query: @physics
Resource: papers://physics
Content:
# Papers on Physics
Total papers: 2
## Physics Briefing Book
- **Paper ID**: 1910.11775v2
- **Authors**: European Strategy for Particle Physics Preparatory Group
- **Published**: 2019-10-25
- **PDF URL**: [https://arxiv.org/pdf/1910.11775v2](https://arxiv.org/pdf/1910.11775v2)
### Summary
The European Particle Physics Strategy Update (EPPSU) process takes a bottom-up approach, whereby the community is first invited to submit proposals (also called inputs) for projects that it would like to see realised in the near-term, mid-term and longer-term future. National inputs as well as inputs from National Laboratories are also an important element of the process. All these inputs are then reviewed by the Physics Preparatory Group (PPG), whose role is to organize a Symposium around the ...
---
## Physics and Technology of the Next Linear Collider: A Report Submitted to Snowmass '96
- **Paper ID**: hep-ex/9605011v1
- **Authors**: NLC ZDR Design Group, NLC Physics Working Group, S. Kuhlman
- **Published**: 1996-05-30
- **PDF URL**: [https://arxiv.org/pdf/hep-ex/9605011v1](https://arxiv.org/pdf/hep-ex/9605011v1)
### Summary
We present the current expectations for the design and physics program of an e+e- linear collider of center of mass energy 500 GeV -- 1 TeV. We review the experiments that would be carried out at this facility and demonstrate its key role in exploring physics beyond the Standard Model over the full range of theoretical possibilities. We then show the feasibility of constructing this machine, by reviewing the current status of linear collider technology and by presenting a precis of our `zeroth-o...
---Example โ Listing and executing prompts:
Query: /prompts
Available prompts:
- generate_search_prompt: Generate a prompt for Chatbot to find and discuss academic papers on a specific topic.
Arguments:
- topic
- num_papers
- fetch: Fetch a URL and extract its contents as markdown
Arguments:
- urlQuery: /prompt generate_search_prompt topic=math num_papers=3
Executing prompt 'generate_search_prompt'...
Calling tool: search_papers with arguments: {'topic': 'math', 'max_results': 3}
Calling tool: extract_info with arguments: {'paper_id': '2103.03874v2'}
Calling tool: extract_info with arguments: {'paper_id': '2312.01048v1'}
Calling tool: extract_info with arguments: {'paper_id': '2310.09590v2'}Claude Desktop Integration
Open Claude Desktop application. Go to Developers > Edit Config and open claude_desktop_config.json in a text editor.
Add our research server to the config:
"mcpServers": {
"research": {
"command": "uv",
"args": [
"--directory",
"<PROJECT ROOT>",
"run",
"mcp_research_server.py"
]
}
}Note: I had to replace
uvwith/Users/username/.local/bin/uvsince Claude could not find it in PATH and threwFailed to spawn process: No such file or directory.
Restart Claude Desktop and run the following prompt:
Use the fetch tool to visit deeplearning.ai and find an interesting topic/keyword about machine learning on that web page.
Then research two papers on arxiv about that topic and summarize them.
Finally, generate a web-based quiz application with a set of flashcards based on the key topics in the papers
NOTE: I want you to use available research_server to search papers and extract infoNote: If you do not add above
NOTE, Claude starts using its own tools.
Remote Server Deployment
Till now we worked with servers running locally using stdio transport. Now, we will create a remote server using FastMCP Streamable HTTP transport, test it using MCP inspector and then learn how to deploy it on render.com.
Run and test on local machine
Make sure all the required deps are installed (uv sync).
We update the main block in our mcp_research_server.py:
if __name__ == "__main__":
# Default: STDIO transport
# mcp.run(transport="stdio")
# Or use HTTP transport
mcp.run(transport="http", host="127.0.0.1", port=9000)Run the server:
uv run mcp_research_server.pyRun in terminal:
npx @modelcontextprotocol/inspectorAdd the server URL http://127.0.0.1:9000/mcp and connect to the server.
Deploy on Render.com and test remote server
Push the codebase to git repo.
Make an account on Render.
Connect github repo and deploy a new web service
Update start command to
uv run mcp_research_server.pyClick
Deploy
Update server_config.json to use remote server (replace command,args with url).
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
},
"research": {
"url": "<REMOTE URL>/mcp"
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
Run the chatbot with the deployed remote server.
uv run mcp_chatbot_resource_prompt_tool.pyFollow prompt steps from the example in previous section.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pytholic/mcp-walkthrough'
If you have feedback or need assistance with the MCP directory API, please join our Discord server