MCP Reference Server
A comprehensive reference implementation demonstrating all features of the Model Context Protocol (MCP) specification, serving as documentation, learning resource, and testing tool for MCP implementations.
README
MCP Reference Server
A comprehensive reference implementation demonstrating all features of the Model Context Protocol (MCP) specification using chuk-mcp-server.
🎉 Certified 100% MCP Specification Compliant - See COMPLIANCE.md
Overview
This repository provides complete, working examples of every MCP feature defined in the official specification. It serves as:
- 📚 Reference Documentation - See how each MCP feature works
- ✅ Spec Compliance Examples - Validate MCP implementations
- 🎓 Learning Resource - Understand the MCP protocol
- 🧪 Testing Tool - Test MCP clients against spec features
Specification Versions
| Version | Status | Features |
|---|---|---|
| 2025-06-18 | ✅ 100% Implemented & Tested | Core spec: Tools, Resources, Prompts, Sampling, Logging |
| 2025-11-25 | 📚 Reference Examples Only | Tasks (experimental), Enhanced Auth, Tool Calling in Sampling, Icons, Enhanced Elicitation |
| 2024-11-05 | 📚 Documented | Initial specification (superseded by 2025-06-18) |
⚠️ Important: MCP 2025-11-25 examples (12, 13, 14) are reference implementations showing how the spec SHOULD work. The features are not yet implemented in chuk-mcp-server. Icons are embedded as text/emojis, and elicitation features are documented in docstrings.
Current Testing: All compliance tests validate against MCP 2025-06-18 (core specification)
MCP Features Demonstrated
✅ Core Protocol (JSON-RPC 2.0)
All examples use proper JSON-RPC 2.0 message formatting implemented by chuk-mcp-server.
✅ Lifecycle
initialize- Connection and capability negotiationinitializednotificationping- Health check (bidirectional)
✅ Server Capabilities
Tools (tools/list, tools/call)
- Basic tools with various parameter types
- Tools with complex schemas
- Tools with progress reporting
- Tools with error handling
- Dynamic tool registration
notifications/tools/list_changed
Resources (resources/*)
- Static resources
- Dynamic resources with URI templates
- Resource subscriptions
- Binary resources (images, audio)
- Text resources (markdown, JSON, code)
notifications/resources/updatednotifications/resources/list_changed
Prompts (prompts/list, prompts/get)
- Static prompts
- Prompts with arguments
- Multi-message prompts
- Prompt templates
notifications/prompts/list_changed
✅ Client Capabilities
Sampling (sampling/createMessage)
- Server-initiated LLM requests
- Multi-turn conversations
- System prompts
- Model preferences
Roots (roots/list)
- Filesystem root queries
notifications/roots/list_changed
✅ Utilities
Logging (logging/setLevel)
- Debug, info, warning, error levels
notifications/message- Log output
Progress
notifications/progress- Long-running operation updates- Progress tokens
Completion (completion/complete)
- Argument autocompletion
- Context-aware suggestions
Cancellation
notifications/cancelled- Request cancellation
Project Structure
chuk-mcp-server-reference/
├── README.md
├── pyproject.toml
├── examples/
│ ├── 01_minimal.py # Simplest possible MCP server
│ ├── 02_tools_basic.py # Basic tool examples (all parameter types)
│ ├── 11_full_server.py # Complete 2025-06-18 reference
│ ├── 12_icons_metadata.py # Icons and metadata (2025-11-25)
│ ├── 13_enhanced_elicitation.py # Enhanced elicitation (2025-11-25)
│ ├── 14_spec_2025_11_25.py # Complete 2025-11-25 reference
│ └── README.md
├── specs/
│ ├── 2024-11-05/
│ │ ├── README.md # Spec version details
│ │ └── features.md # Feature checklist
│ ├── 2025-06-18/
│ │ ├── README.md
│ │ └── features.md
│ └── 2025-11-25/
│ ├── README.md
│ └── features.md
└── tests/
├── test_tools.py # Tool examples tests
├── test_resources.py # Resource examples tests
├── test_prompts.py # Prompt examples tests
└── test_integration.py # Full integration tests
Quick Start
Installation
cd chuk-mcp-server-reference
pip install -r requirements.txt
Run Examples
# MCP 2025-06-18 (Core Specification - 100% Compliant)
python examples/01_minimal.py # Start here - simplest server
python examples/02_tools_basic.py # All tool parameter types
python examples/11_full_server.py # Complete 2025-06-18 reference
# MCP 2025-11-25 (Latest Specification - Reference Examples)
# ⚠️ These are reference examples only - features not yet in chuk-mcp-server
python examples/12_icons_metadata.py # Icons reference (emoji-based)
python examples/13_enhanced_elicitation.py # Enhanced elicitation reference
python examples/14_spec_2025_11_25.py # Complete 2025-11-25 reference
Example Catalog
1. Minimal Server
The simplest possible MCP server with one tool.
2. Basic Tools
Demonstrates all tool parameter types:
- String, integer, number, boolean
- Arrays and objects
- Optional and required parameters
- Default values
3. Advanced Tools
- Complex nested schemas
- Progress reporting during execution
- Error handling patterns
- Tool result content types (text, images, embedded resources)
4. Basic Resources
- Static resources with various MIME types
- List resources
- Read resource content
- Text and binary resources
5. Advanced Resources
- URI templates (
file://logs/{date}) - Resource subscriptions
- Resource update notifications
- Dynamic resource generation
6. Basic Prompts
- Simple prompts
- Prompts with arguments
- Multi-message prompts
7. Advanced Prompts
- Parameterized prompt templates
- Dynamic prompt generation
- Prompt argument validation
8. Sampling
- Server requests LLM completion from client
- Multi-turn conversations
- System prompts and preferences
9. Logging & Progress
- Log level configuration
- Progress notifications for long operations
- Progress tokens
10. Completion
- Argument autocompletion
- Context-aware suggestions
11. Full Server
Complete server with ALL features enabled - the ultimate reference.
Testing with MCP Inspector
All examples work with MCP Inspector:
# Run any example
python examples/11_full_server.py
# In another terminal, use MCP Inspector
npx @modelcontextprotocol/inspector
Configure Inspector:
- Transport: HTTP or STDIO
- URL:
http://localhost:8000/mcp(for HTTP) - Command:
python examples/11_full_server.py(for STDIO)
Specification Mapping
Each example includes comments mapping features to the official MCP specification:
# MCP Spec: tools/list
# Version: 2025-06-18
# Reference: https://modelcontextprotocol.io/specification/2025-06-18/server/tools
@mcp.tool
def example_tool(param: str) -> str:
"""Tool description per spec."""
return result
Spec Compliance
This reference server aims for 100% compliance with the MCP specification:
- ✅ Proper JSON-RPC 2.0 formatting
- ✅ Capability negotiation
- ✅ Content type support (text, image, audio, embedded resources)
- ✅ Error codes and handling
- ✅ Notifications
- ✅ Pagination
- ✅ Progress reporting
- ✅ Cancellation
Testing
Run Compliance Demo
Interactive demo that tests full MCP spec compliance:
# Auto-start server and test
python examples/spec_compliance_demo.py --start-server
# Against a running server
python examples/spec_compliance_demo.py
# Against a different server
python examples/spec_compliance_demo.py --url http://localhost:3000/mcp
Run Test Suite
# Run all tests
pytest
# Run protocol compliance tests (2025-06-18)
pytest tests/test_protocol_compliance.py -v
# Run example validation tests
pytest tests/test_examples.py -v
# Run 2025-11-25 feature tests (shows what's not implemented)
pytest tests/test_2025_11_25_features.py -v
# Run with coverage
pytest --cov=examples --cov-report=html
MCP 2025-11-25 Feature Status
Test the implementation status of new features:
# Run feature tests - shows passing and expected failures
pytest tests/test_2025_11_25_features.py -v
# See summary of what works and what doesn't
pytest tests/test_2025_11_25_features.py::test_summary_report -v -s
Results: 3 passed (description, defaults), 5 xfailed (icons, elicitation modes)
Documentation
specs/- Detailed documentation for each spec versionexamples/README.md- Guide to all examples- Each example file contains extensive inline documentation
Contributing
Contributions should:
- Map to specific MCP specification sections
- Include spec version and reference URLs
- Add tests
- Update documentation
Resources
License
MIT License
Built with chuk-mcp-server - The protocol implementation is already done, this repo just demonstrates all the features! 🚀
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。