上下文传输器MCP🚀
使用FastMCP构建的模型上下文协议(MCP)服务器,用于会话线程之间的无缝上下文传输。
特性
- 提取会话上下文:从现有会话中提取并总结对话历史记录
- 种子新会议:使用以前会话中注入的上下文创建新的对话线程
- 智能上下文过滤:使用语义相似性和重要性评分仅提取相关消息
- LRU缓存:自动缓存频繁访问的会话,以提高性能
- 相关性评分:使用可配置的权重过滤掉不相关的信息
- Docker支持:在Docker容器中作为HTTP服务器运行
- 异步贯穿始终:内置async/await以获得最佳性能
- 类型安全:完整的类型提示,以获得更好的IDE支持和代码质量
快速开始
1.安装
# Clone the repository
git clone https://github.com/yourusername/context-transporter-mcp.git
cd context-transporter-mcp
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Basic installation
pip install -e .
# With semantic embeddings (recommended for better relevance scoring)
pip install -e ".[embeddings]"2.运行服务器
python src/context_transporter.py3.配置您的MCP客户端
添加到您的MCP客户端配置中(例如,Claude Desktop、Cursor、Augment):
{
"mcpServers": {
"context-transporter": {
"command": "python",
"args": ["/path/to/context-transporter-mcp/src/context_transporter.py"]
}
}
}配置文件位置:
- 克劳德桌面版:
~/.config/claude/claude_desktop_config.json(macOS/Linux)或%APPDATA%\Claude\claude_desktop_config.json(Windows) - 增强:
%APPDATA%\Augment\mcp_config.json(Windows)或~/Library/Application Support/Augment/mcp_config.json(macOS) - 光标:检查Cursor的MCP设置
______________________________________________________________________
可用工具
1. extract_session_context
保存并从当前对话中提取上下文。
保存当前对话:
result = await extract_session_context(
messages=[
{"role": "user", "content": "How do I use FastMCP?"},
{"role": "assistant", "content": "FastMCP is a Python framework..."}
],
title="FastMCP Discussion"
)
# Returns: session_id to use later加载现有会话:
result = await extract_session_context(session_id="session-abc123")2. seed_context
将上一个会话的上下文加载到新线程中。
# In a fresh thread, load context from previous session
result = await seed_context(session_id="session-abc123")
# The AI now has full context from the previous conversation!上下文模式:
"full"(默认):完成对话记录"summary":只是对话摘要"key_points":关键要点
3. extract_relevant_context
根据查询仅提取最相关的消息。
result = await extract_relevant_context(
session_id="session-123",
query="authentication login",
max_messages=10,
recency_weight=0.3, # Weight for recent messages
importance_weight=0.2, # Weight for important content
similarity_weight=0.5 # Weight for query similarity
)4. list_sessions
列出所有可用的已保存会话。
result = await list_sessions()5. clear_cache
清除会话缓存以释放内存。
result = await clear_cache()______________________________________________________________________
工作流示例
主题A(原始对话):
User: "Save this conversation for later"
→ extract_session_context(messages=[...], title="My Discussion")
→ Returns: session_id = "session-abc123"线程B(新线程):
User: "Load context from session-abc123"
→ seed_context(session_id="session-abc123")
→ AI now has full context from Thread A!______________________________________________________________________
相关性评分
相关性评分系统使用三个因素:
1.近期得分
- 指数衰减:
score = e^(-0.1 * position_from_end) - 最近的消息得分更高
2.重要性得分
检测重要信号:
- 问题(包含
?): +0.2 - 代码块(包含 ```
````): +0.15 - 决策关键字(实现、修复、错误):+0.1
- 长消息(>200个字符):+0.05
3.相似性得分
- 带嵌入件:消息和查询之间的余弦相似性
- 无嵌入:Jaccard相似性(关键字重叠)
体重指南:
- 高收重量(0.5-0.7):用于正在进行的对话
- 高重要性_重量(0.5-0.7):用于决策密集型讨论
- 高相似性_重量(0.5-0.7):用于特定主题的提取
______________________________________________________________________
Docker设置(HTTP传输)
在Docker中作为HTTP服务器运行,以获得更好的稳定性。
构建并运行
# Build
docker build -t context-transporter-mcp:latest .
# Run with Docker Compose
docker-compose up -d
# Or run directly
docker run -d --name context-transporter-mcp -p 8090:8090 \
-v ./sessions:/app/sessions context-transporter-mcp:latest为HTTP配置MCP客户端
{
"mcpServers": {
"context-transporter": {
"url": "http://localhost:8090/sse",
"type": "http"
}
}
}HTTP传输的优点
- ✅ 无Windows异步问题(在Linux容器中运行)
- ✅ 更好的调试(使用curl进行测试)
- ✅ 持久服务器(响应速度更快)
- ✅ 多个客户端可以连接
______________________________________________________________________
建筑
┌─────────────────────────────────────────────────────────────┐
│ MCP Client (AI Assistant) │
└────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Context Transporter MCP Server │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Tool: extract_relevant_context │ │
│ │ - Query-based filtering │ │
│ │ - Relevance scoring │ │
│ │ - Smart message selection │ │
│ └────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Context Cache │ │ Relevance Scorer │ │
│ │ - LRU eviction │ │ - Recency │ │
│ │ - Fast access │ │ - Importance │ │
│ │ - Statistics │ │ - Similarity │ │
│ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────┐
│ Session Storage │
│ sessions/*.json │
└─────────────────────┘文件结构
context-transporter-mcp/
├── src/
│ ├── context_transporter.py # Main MCP server
│ ├── context_cache.py # LRU caching
│ └── relevance_scorer.py # Relevance scoring
├── sessions/ # Session storage (gitignored)
├── tests/ # Test files
├── examples/ # Usage examples
├── Dockerfile # Docker support
├── docker-compose.yml # Docker Compose config
└── pyproject.toml # Python package config______________________________________________________________________
发展
运行测试
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run standalone test
python test_caching_standalone.py代码格式化
black src/
ruff check src/______________________________________________________________________
用例
- 继续对话 跨不同的聊天界面
- 传输上下文 不同AI助手之间
- 存档和简历 长期讨论
- 共享对话上下文 与团队成员
- 迁移对话 平台之间
- 提取相关信息 没有上下文膨胀
- 筛选对话 按主题或重要性
______________________________________________________________________
故障排除
服务器无法启动
- 确保安装了FastMCP:
pip install fastmcp - 检查Python版本:需要Python 3.10+
会话未持续
- 检查一下
sessions/目录存在并且可写
嵌入不起作用
pip install sentence-transformers numpy缓存问题
# Check cache stats
await get_cache_stats()
# Clear cache
await clear_cache()______________________________________________________________________
构建于
- 快速MCP -构建MCP服务器的快速Python方法
- Python 3.10+带async/await
- 可选:用于语义嵌入的句子变换器
许可证
麻省理工学院
