mcp-quickserver
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-quickserveradd a note titled 'Ideas' with content 'new project for Q4'"
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-quickserver
A working MCP (Model Context Protocol) server template. Fork it, swap the store, add your tools.
Demonstrates all three MCP primitives — tools, resources, and prompts — with both stdio and SSE transports, proper error handling, and a test harness that runs without a connected client.
What's included
Primitive | What it does |
Tools |
|
Resources |
|
Prompts |
|
The backing store is an in-memory NoteStore. Replacing it with SQLite, Postgres, or Redis is a one-file change.
Related MCP server: Basic MCP Server
Install
pip install -e .Requires Python ≥ 3.10 and the mcp SDK.
Wire to Claude Desktop
Copy claude_desktop_config.json.example into your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"quickserver": {
"command": "python",
"args": ["-m", "mcpquickserver"],
"cwd": "/absolute/path/to/mcp-quickserver"
}
}
}Restart Claude Desktop. The tools appear automatically in the tool picker.
Wire to Claude Code
# From within your project
claude mcp add quickserver -- python -m mcpquickserverOr add to .claude/settings.json:
{
"mcpServers": {
"quickserver": {
"command": "python",
"args": ["-m", "mcpquickserver"]
}
}
}Run as an HTTP server (SSE transport)
MCP_HOST=0.0.0.0 MCP_PORT=9000 python -m mcpquickserver --transport sseSSE transport is useful when the client runs in a different process or on a different machine.
Code layout
src/mcpquickserver/
├── server.py ← tool/resource/prompt registration against a NoteStore
├── store.py ← NoteStore business logic (swap this for persistence)
└── __main__.py ← CLI entry pointAdding a tool
# server.py
@mcp.tool()
def word_count(text: str) -> str:
"""Count the words in a block of text."""
return str(len(text.split()))FastMCP generates the JSON schema from the type annotations. The docstring becomes the tool description shown to the model.
Adding a resource
@mcp.resource("config://settings")
def settings_resource() -> str:
"""Current server configuration as JSON."""
return json.dumps({"version": "0.1.0", "store": "memory"})Dynamic URI segments work too — notes://{note_id} captures note_id from the URI and passes it as a parameter.
Adding a prompt template
@mcp.prompt()
def draft_email(recipient: str, topic: str) -> str:
"""Build a prompt to draft a professional email."""
return f"Please draft a professional email to {recipient} about: {topic}"Error handling
Tools that raise an exception return an is_error: true result to the model so it can recover — the exception does not propagate to the caller or crash the server:
@mcp.tool()
def get_note(note_id: str) -> str:
"""Retrieve a note by its ID."""
note = store.get(note_id)
if note is None:
raise ValueError(f"No note with id {note_id!r}") # → is_error result
return json.dumps(note, indent=2)Tests
pip install -e ".[dev]"
pytest -vTests cover the NoteStore business logic and all tool/resource/prompt handlers directly. No connected client required. The store module attribute is monkeypatched per test so each test starts with a clean slate.
Replacing the store
NoteStore in store.py exposes five methods: add, get, delete, search, all. Any object that implements those five is a drop-in replacement:
# e.g. SQLite backend
class SqliteNoteStore:
def __init__(self, db_path: str): ...
def add(self, title, content, tags=None) -> str: ...
def get(self, note_id) -> dict | None: ...
def delete(self, note_id) -> bool: ...
def search(self, query="", tag="") -> list[dict]: ...
def all(self) -> list[dict]: ...Swap the store = NoteStore() line in server.py and the rest is unchanged.
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
- 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/shadowmodder/mcp-quickserver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server