MCP Server Example
This server provides note management, basic arithmetic, and AI-driven content generation.
Tools:
add(a, b): Returns the sum of two numbers.multiply(a, b): Returns the product of two numbers.save_note(name, content): Saves a note with the given name and content.delete_note(name): Deletes a note by name.
Resources:
notes://list: Lists all saved notes.notes://{name}: Reads the content of a specific note.
Prompts:
summarize_notes: Summarizes all saved notes.brainstorm(topic): Brainstorms ideas on a specified topic.
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., "@MCP Server ExampleSave a note called 'ideas' with 'Build a custom MCP server'"
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 Server Example
A simple MCP (Model Context Protocol) server for learning the core primitives: Tools, Resources, and Prompts.
Setup
Prerequisites
Python 3.10+
Install
uv syncTest
Option 1 — MCP Inspector (recommended)
uv run mcp dev server.pyOpens a browser UI at http://localhost:6274. From there you can:
Tools tab: call
save_note,delete_notewith custom inputsResources tab: read
notes://listornotes://{name}Prompts tab: run
summarize_notesorbrainstormwith arguments
Option 2 — CLI with mcp client
List all available tools:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | uv run python server.pyConnect to Claude Code (CLI)
Add the server to your Claude Code session:
claude mcp add learning-mcp -- uv run --directory /Users/binod/projects/mcp-example python server.pyVerify it's connected:
claude mcp listOnce added, Claude Code can call your tools directly in the chat — just ask it to, e.g. "save a note called 'ideas'".
Connect to Claude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"learning-mcp": {
"command": "uv",
"args": [
"run",
"--directory", "/Users/binod/projects/mcp-example",
"python", "server.py"
]
}
}
}Then restart Claude Desktop.
Use programmatically (Python)
Use the mcp library to call tools, read resources, and fetch prompts from your own code:
from mcp import ClientSession
from mcp.client.stdio import stdio_client, StdioServerParameters
import asyncio
async def main():
server = StdioServerParameters(
command="uv", args=["run", "python", "server.py"]
)
async with stdio_client(server) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Read a resource
notes = await session.read_resource("notes://list")
print(notes)
# Get a prompt
prompt = await session.get_prompt("brainstorm", {"topic": "side projects"})
print(prompt)
asyncio.run(main())To let Claude (via Anthropic API) call your tools, add anthropic[mcp] to your dependencies and convert the tools:
from anthropic.lib.tools.mcp import async_mcp_tool
import anthropic
client = anthropic.AsyncAnthropic()
tools = [async_mcp_tool(t, session) for t in (await session.list_tools()).tools]
runner = client.beta.messages.tool_runner(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Save a note called ideas"}],
tools=tools,
)
async for message in runner:
for block in message.content:
if hasattr(block, "text"):
print(block.text)What's inside
File | Description |
| MCP server with tools, resources, and prompts |
| Project dependencies |
Tools (Claude can call these)
Tool | Description |
| Save a note |
| Delete a note |
Resources (Claude can read these)
URI | Description |
| List all saved notes |
| Read a specific note |
Prompts (reusable templates)
Prompt | Description |
| Summarize all saved notes |
| Brainstorm ideas on a topic |
Latest Blog Posts
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/binodrajpandey/mcp-example'
If you have feedback or need assistance with the MCP directory API, please join our Discord server