使用说明
MCP上下文桥
使用模型上下文协议进行跨LLM会话共享
通过智能压缩在ChatGPT、Claude和Gemini之间传输对话。
这是什么?
一 MVP实施 它允许您保存来自一个LLM的对话并将其加载到另一个。使用 模型上下文协议(MCP) -AI上下文管理的开放标准。
例子: 与ChatGPT就实现OAuth进行对话,保存它,然后在Claude中以完整上下文继续进行同样的对话。
建筑
┌─────────────────────────────────────────────┐
│ Browser Extension (Chrome) │
│ │
│ ChatGPT / Gemini / Claude Content Scripts │
│ ↓ │
│ Service Worker (Message Bus) │
│ ↓ │
│ MCP Client (HTTP/JSON-RPC) │
└──────────────┬──────────────────────────────┘
│
│ HTTP POST: JSON-RPC 2.0
│ http://localhost:3000/mcp/v1/rpc
↓
┌──────────────────────────────────────────────┐
│ MCP Server (Node.js + Express) │
│ │
│ MCP Handler → Summarizer → Storage │
│ ↓ │
│ JSON or SQLite │
└──────────────────────────────────────────────┘
组件:
- 扩展:将按钮注入LLM页面,提取/加载对话
- MCP服务器:存储上下文并压缩它们(减少96-99%)
- 存储:JSON(默认)或带全文搜索的SQLite
特性
✅ 手动上下文传输 -通过UI按钮加载上下文(无自动注入) ✅ 智能压缩 -基于规则的摘要(96-99%的令牌减少) ✅ MCP协议 -符合JSON-RPC 2.0标准 ✅ 双存储器 -JSON或SQLite与FTS5 ✅ 三位法学硕士 -ChatGPT、Gemini、Claude支持
快速开始
1.启动服务器
# Clone and navigate to server
git clone https://github.com/vansh-903/context-mcp.git
cd context-mcp/server
# Install and run
npm install
cp .env.example .env
npm run dev
服务器运行时间: http://localhost:3000
2.安装扩展
# Build extension
cd ../extension
npm install
npm run build
在Chrome中安装:
- 首选
chrome://extensions/ - 启用“开发人员模式”
- 点击“加载解包”
- 选择
extension/dist文件夹
✅ 完成!
如何使用
保存对话
- 前往ChatGPT/Gemini/Claude
- 进行对话
- 点击 "💾 保存到MCP” 按钮(右下角)
- 查看成功通知
加载上下文
- 转到其他LLM(例如Gemini)
- 点击 "📥 加载上下文” 按钮(右下角)
- 从下拉列表中选择源LLM(例如“ChatGPT”)
- 上下文出现在文本区域
- 继续你的谈话!
配置
服务器(.env)
PORT=3000 # Server port
HOST=localhost # Server host
DATA_DIR=./data # Storage location
STORAGE_TYPE=json # 'json' or 'sqlite'
切换到SQLite
SQLite为您提供全文搜索功能:
STORAGE_TYPE=sqlite
服务器自动创建 data/mcp.db FTS5指数。
API
MCP工具(JSON-RPC 2.0)
添加上下文:
{
"method": "tools/call",
"params": {
"name": "add_context",
"arguments": {
"content": "ChatGPT conversation:\n\n...",
"source_llm": "chatgpt"
}
}
}
获取摘要:
{
"method": "tools/call",
"params": {
"name": "get_smart_summary",
"arguments": {
"source_llm": "chatgpt",
"target_llm": "gemini",
"max_tokens": 2500
}
}
}
搜索(仅限SQLite):
{
"method": "tools/call",
"params": {
"name": "search_context",
"arguments": {
"query": "OAuth implementation",
"limit": 10
}
}
}
REST端点
GET /health-健康检查GET /-服务器信息
延伸
这是MVP。以下是如何添加常见功能:
添加PostgreSQL存储
// server/src/storage/postgres-storage.ts
import { Pool } from 'pg';
export class PostgresStorage implements IStorage {
private pool = new Pool({ connectionString: process.env.DATABASE_URL });
async addContext(data) {
const result = await this.pool.query(
'INSERT INTO contexts (...) VALUES (...) RETURNING *',
[...]
);
return result.rows[0];
}
}
.env:
STORAGE_TYPE=postgres
DATABASE_URL=postgresql://user:pass@localhost:5432/mcp
添加AI摘要
// server/src/services/ai-summarizer.ts
import OpenAI from 'openai';
export class AISummarizer {
async summarize(context: string, maxTokens: number) {
const response = await this.openai.chat.completions.create({
model: 'gpt-4-turbo',
messages: [
{ role: 'system', content: 'Summarize preserving key info' },
{ role: 'user', content: context }
],
max_tokens: maxTokens
});
return response.choices[0].message.content;
}
}
.env:
SUMMARIZER_TYPE=ai
OPENAI_API_KEY=sk-...
添加云同步(Supabase)
// server/src/storage/supabase-storage.ts
import { createClient } from '@supabase/supabase-js';
export class SupabaseStorage implements IStorage {
private supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
);
async addContext(data) {
const { data: entry, error } = await this.supabase
.from('contexts')
.insert([data])
.select()
.single();
return entry;
}
}
.env:
STORAGE_TYPE=supabase
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=eyJh...
这 IStorage 界面使任何数据库都易于添加。看 实施.md 了解详情。
故障排除
重新加载后扩展不工作:
- 关闭所有LLM选项卡
- 在以下位置重新加载扩展
chrome://extensions/ - 打开新标签页
“未找到文本区域”:
- LLM更新了他们的页面结构
- 检查控制台(F12)是否存在选择器错误
- 更新选择器
extension/src/content/{llm}.ts
服务器无法启动(端口正在使用中):
# Windows
netstat -ano | findstr :3000
taskkill /PID <PID> /F
# macOS/Linux
lsof -i :3000
kill -9 <PID>
上下文已损坏:
cp data/contexts.json data/contexts.json.backup
echo "[]" > data/contexts.json
项目结构
context-mcp/
├── extension/ # Chrome Extension
│ ├── src/
│ │ ├── content/ # Content scripts (ChatGPT, Gemini, Claude)
│ │ ├── background/ # Service worker
│ │ ├── api/ # MCP client
│ │ └── popup/ # Extension UI
│ └── dist/ # Built extension
│
└── server/ # MCP Server
├── src/
│ ├── mcp/ # Protocol handlers
│ ├── services/ # Summarizer
│ └── storage/ # JSON/SQLite implementations
└── data/ # Storage files
贡献
欢迎投稿!
- 分叉回购
- 创建要素分支:
git checkout -b feature/name - 承诺:
git commit -m 'Add feature' - 推:
git push origin feature/name - 打开拉取请求
思想:
- 添加困惑/Poe支持
- 实现对话线程
- 添加语义搜索(向量嵌入)
- 构建移动扩展
- 添加导出/导入功能
许可证
MIT许可证-请参阅 许可证
链接
- github: https://github.com/vansh-903/context-mcp
- MCP规范: https://modelcontextprotocol.io
- 实施细节: 实施.md
内置❤️ 通过 凡什·阿罗拉
星⭐ 如果你觉得这有用的话!
