README Documentation
🧠 Agent with MCP Tools and Ollama (Codespaces Ready)
This project demonstrates how to use smolagents
, mcp
, and Ollama
in GitHub Codespaces, and how to integrate with GitHub's remote MCP server (public preview).
Lab 1: Use Local MCP Inspector in Codespaces
✅ Setup
- Open this repo in GitHub Codespaces
- Ensure
.devcontainer
builds the container withOllama
and Python dependencies - In terminal:
pip install mcp
mcp dev calculator.py
- MCP Inspector UI at:
http://localhost:6274
- SSE endpoint at:
http://localhost:6277/sse
✅ Test Agent via CLI
python test_calculator_agent.py
✅ Or Use Chat UI
python chat_calculator_agent.py
Lab 2: Use GitHub’s New Remote MCP Server (Public Preview)
🆕 As of June 12, 2025, you can register and use remote tools on GitHub’s cloud MCP platform.
🛠 Steps
- Install latest
mcp
CLI:
pip install --upgrade mcp
- Register your tool with GitHub’s MCP cloud server:
mcp register --tool calculator.py --remote
- Start agent with remote tools:
mcp_client = MCPClient({
"url": "https://mcp.github.dev/sse",
"token": "<your GitHub token>"
})
- Run the CLI agent or Gradio app as usual
🔁 Lab 3: Add a Second Tool (Reverse String)
This lab shows how to add another tool to the MCP Inspector workflow.
✅ Setup
Create reverse_string.py
:
from mcp import tool
@tool
def reverse_string(text: str) -> str:
return text[::-1]
Then launch it:
mcp dev reverse_string.py
Update your test agent or Gradio interface to prompt:
"Reverse the string 'hello world'"
🧠 The LLM will choose the appropriate tool via schema-based reasoning.
🎁 Bonus: Multi-Tool MCP Server
Instead of running individual tools, you can host multiple tools in a single server using FastMCP.
✅ Setup
Create a file multi_tool_server.py
:
from fastapi import FastAPI
from fastmcp import FastMCP
from mcp import tool
@tool
def calculator(expression: str) -> str:
try:
result = eval(expression, {"__builtins__": {}})
return str(result)
except Exception as e:
return f"Error: {str(e)}"
@tool
def reverse_string(text: str) -> str:
return text[::-1]
app = FastMCP().app
Run it with:
python multi_tool_server.py
Then connect your agent to:
MCPClient({"url": "http://127.0.0.1:7860/sse"})
Now you can access both tools from one endpoint!
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source