关于 context-first-mcp
context-first-mcp 是帮助 AI Agent 在多轮对话中跟踪上下文、持久记忆、推理和真实性的 MCP 服务。`context_loop` 将多项检查汇总为指令,其他工具还支持研究和文件导出。
主要功能
- 01通过 `context_loop` 编排上下文检查
- 02检测偏离、冲突、歧义和执行偏差
- 03存储、召回和整理持久记忆
- 04执行推理与真实性检查
- 05编排研究并将文件导出到磁盘
适用场景
- 01在长对话中帮助 Agent 回到原定目标
- 02发现矛盾并澄清未明确的需求
- 03跨任务存储和检索研究结果
- 04运行结构化研究流程并保存输出
MCP 相关
向 MCP 客户端提供包括 `context_loop` 编排器在内的 37 个工具。支持本地 stdio 使用和远程 Streamable HTTP 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| check | enum | 否 | 覆盖:运行指定检查。若省略,则根据参数自动选择。clear_state 与 get_state 共用参数——使用此覆盖项进行区分。recap | conflict | ambiguity | verify | entropy | abstention | grounding | drift | depth | get_state | set_state | clear_state | history |
| params | object | 否 | 底层工具的参数(不含 sessionId)。如果参数匹配多个工具,则运行多个检查。recap:{messages[], lookbackTurns?};conflict:{newMessage};ambiguity:{requirement, context?};verify:{goal, output, expectedIndicators?};entropy:{outputs[], threshold?, autoReset?};abstention:{claim, requiredKeys[], threshold?};grounding:{assistantOutput, claim?};drift:{windowSize, turn?, health?, breakdown?};depth:{content, minDepthWords?, minDepthSentences?};get_state:{keys?};set_state:{key, value, source?};clear_state:(使用 check 覆盖);history:{maxTokens} |
| sessionId | string | 否 | 会话标识符 |
详细介绍
Context-First MCP
让 AI 在每一轮对话中始终扎根于上下文、保持连贯并诚实作答的 MCP 服务。
npx context-first-mcp
可立即与 Claude Desktop · Cursor · VS Code · 任意 MCP 客户端 · Vercel 远程服务配合使用——无需 API 密钥。
37 个基于研究成果的工具,涵盖 7 个层面——上下文健康、状态、沙盒、持久记忆、高级推理、真实性验证、编排、结构化研究和自主文件导出。一次
context_loop调用即可取代 6–7 个独立工具,并返回统一的操作指令。
为什么 AI 对话会出问题
较长的 AI 对话会以可预见的方式失败。Context-First 可解决以下全部四类问题:
| 失败模式 | 问题所在 | Context-First 解决方案 |
|---|---|---|
| 上下文偏移 | 随着对话不断延长,AI 会忘记先前的决定和意图 | context_loop + detect_drift 持续在每一轮重新锚定上下文 |
| 隐性矛盾 | 新输入悄然推翻已确立的事实——AI 却没有察觉 | detect_conflicts 会将每条输入与已锁定的真实依据进行比较 |
| 执行含糊 | AI 根据未充分说明的要求继续执行,导致输出不匹配 | check_ambiguity + abstention_check 会提出澄清问题,而不是猜测 |
| 虚报成功 | 工具输出看起来成功了,实际上却没有达到目标 | verify_execution 会重新检查结果是否符合所述意图 |
你将获得什么
37 个可用于生产环境的工具,分为 7 个层面——另有 1 个编排器可运行所有工具:
context_loop ─────────────────────────────────────────────────────────────────
├─ Layer 1 · Context Health (9 tools) recap, conflict, ambiguity, depth …
├─ Layer 2 · Sandbox (3 tools) discover_tools, quarantine, merge
├─ Layer 3 · Persistent Memory(6 tools) store, recall, compact, graph …
├─ Layer 4 · Advanced Reasoning(5 tools) InftyThink, Coconut, KAG, MindEvo …
├─ Layer 5 · Truthfulness (7 tools) NCB, IOE, verify_first, self_critique…
└─ State + Research Pipeline + Export (7 tools)
一次调用。一个指令。一个分数。
{
"directive": {
"action": "clarify",
"contextHealth": 0.62,
"instruction": "Resolve with the user: (1) Is this a firm requirement? (2) Which framework?",
"autoExtractedFacts": { "deploy_to": "Vercel" },
"suggestedNextTools": ["verify_execution", "quarantine_context"]
}
}
快速开始
npx——无需安装
npx context-first-mcp
Claude Desktop
{
"mcpServers": {
"context-first": {
"command": "npx",
"args": ["-y", "context-first-mcp"]
}
}
}
Cursor / VS Code
{
"mcp": {
"servers": {
"context-first": {
"command": "npx",
"args": ["-y", "context-first-mcp"]
}
}
}
}
远程(Streamable HTTP)
{
"mcpServers": {
"context-first": {
"url": "https://context-first-mcp.vercel.app/api/mcp"
}
}
}
部署你自己的 Vercel 实例
工具参考
第 1 层:核心上下文健康(9 个工具)
| 工具 | 用途 |
|---|---|
context_loop | 一次调用即可完成编排。 运行 8 个阶段(摄取→回顾→冲突→歧义→熵→弃答→发现→综合),并返回一个包含 action、contextHealth 分数、提取出的事实和建议后续工具的 directive |
recap_conversation | 提取隐含意图和关键决策,并生成汇总后的状态摘要 |
detect_conflicts | 将新输入与真实依据进行比较,并指出矛盾 |
check_ambiguity | 识别说明不充分的要求,并生成澄清问题 |
verify_execution | 验证工具输出是否真正达成所述目标 |
entropy_monitor | 通过词汇多样性、矛盾密度、保留措辞频率和 n 元语法重复率进行代理熵评分(ERGO) |
abstention_check | 从 5 个维度评估置信度——通过提问而非产生幻觉来弃答(RLAAR) |
detect_drift | 检测对话是否偏离最初意图 |
check_depth | 根据问题复杂度评估回答深度 |
第 1b 层:状态管理(4 个工具)
| 工具 | 用途 |
|---|---|
get_state | 获取已确认的事实和任务状态 |
set_state | 锁定真实情况——后续冲突检查将以这些值为依据 |
clear_state | 重置特定键或全部状态 |
get_history_summary | 带有意图注释的压缩对话历史 |
第 2 层:沙箱与发现(3 个工具)
| 工具 | 方法 | 用途 |
|---|---|---|
discover_tools | MCP-Zero + ScaleMCP | 自然语言工具路由——仅返回语义相关的工具,最多可减少 98% 的上下文膨胀 |
quarantine_context | Multi-Agent Quarantine | 为子任务创建隔离的记忆区,防止意图被稀释 |
merge_quarantine | Multi-Agent Quarantine | 合并记忆区结果并过滤噪声——只有提升后的键会返回主上下文 |
第 3 层:持久化记忆(6 个工具)
| 工具 | 用途 |
|---|---|
memory_store | 存储带有元数据的发现、决策和中间结果 |
memory_recall | 根据语义查询检索相关记忆 |
memory_compact | 压缩并整合记忆条目 |
memory_graph | 根据存储的记忆构建和查询知识图谱 |
memory_inspect | 检查记忆存储的内容和统计信息 |
memory_curate | 对记忆条目去重并整理 |
第 4 层:高级推理(5 个工具)
| 工具 | 方法 | 用途 |
|---|---|---|
inftythink_reason | InftyThink | 通过自适应停止实现无限深度推理 |
coconut_reason | Coconut | 在潜在空间中进行连续思维链推理 |
extracot_compress | ExtraCoT | 压缩思维链,同时保留推理准确性 |
mindevolution_solve | MindEvolution | 在解空间中进行进化搜索 |
kagthinker_solve | KAG-Thinker | 通过结构化思考实现知识增强生成 |
第 5 层:真实性与验证(7 个工具)
| 工具 | 用途 |
|---|---|
probe_internal_state | 通过改述后的提示词探测模型的一致性 |
detect_truth_direction | 检测模型推理是在趋向真相还是偏离真相 |
ncb_check | 检查语义等价输入之间的一致性 |
check_logical_consistency | 验证推理链的逻辑连贯性 |
verify_first | 在认定结论前进行预验证 |
ioe_self_correct | 内在与外在自我纠正 |
self_critique | 结构化自我批评并提出改进建议 |
研究流程与导出(2 个工具)
| 工具 | 用途 |
|---|---|
research_pipeline | 按 init → gather → analyze → verify → finalize 进行结构化研究编排。涵盖全部 34 个底层等效工具——状态、沙箱、记忆、推理、真实性和上下文健康状况。流程运行时会自动将文件写入磁盘;输出文件无需 LLM 配合。 |
export_research_files | 通过单次调用,将每个已验证的报告片段和/或每批原始证据写入磁盘。 |
基于同行评审研究构建
每种核心算法均源自已发表的论文:
| 算法 | 论文 | arXiv | 工具 |
|---|---|---|---|
| MCP-Zero | 主动工具请求 | 2506.01056 | discover_tools |
| ScaleMCP | 语义工具分组 | 2505.06416 | discover_tools 注册表 |
| ERGO | 基于熵的质量评估 | 2510.14077 | entropy_monitor |
| RLAAR | 校准式弃答 | 2510.18731 | abstention_check |
实现亮点:
- 代理熵(ERGO): 使用 4 种响应级代理信号(词汇多样性、矛盾密度、模糊措辞频率、n 元语法重复)替代无法访问的词元级 logprobs。综合分数超过阈值时,会触发自适应上下文重置。
- TF-IDF 发现(MCP-Zero): 纯 TypeScript 实现,无外部依赖。启动时为所有工具描述建立索引;通过余弦相似度,将查询路由到仅包含最相关工具的 top-k 集合。
- 推理时弃答(RLAAR): 使用 5 维置信度评分替代强化学习训练循环。置信度低于阈值时,会通过有针对性的问题弃答,不使用幻觉回退方案。
导出助手(1 个工具)
| 工具 | 描述 |
|---|---|
export_research_files | 将研究成果直接写入磁盘。它可以自动展开并写入每个已验证的报告分块,无需请求大模型手动循环调用 finalize;也可以写入每一批收集到的原始证据,即使尚未通过 verify。 |
context_loop 流水线
context_loop (single MCP tool call)
├── Stage 1: INGEST — Store messages to session history
├── Stage 2: RECAP — Extract intents, decisions, summaries
├── Stage 3: CONFLICT — Detect contradictions against ground truth
├── Stage 4: AMBIGUITY — Check for underspecified requirements
├── Stage 5: ENTROPY — Monitor output quality degradation (ERGO)
├── Stage 6: ABSTENTION — Multi-dimensional confidence check (RLAAR)
├── Stage 7: DISCOVERY — Suggest relevant next tools (MCP-Zero)
└── Stage 8: SYNTHESIS — Combine signals → action recommendation + LLM directive
综合优先级: abstain > reset > clarify > proceed
每个阶段都会独立运行并隔离错误——某个阶段发生故障不会阻塞其他阶段。结果包含各阶段的耗时、状态和详细结果,便于观察。
LLM 指令(新增)
context_loop 响应包含一个顶层 directive 对象,专为 LLM 消费而设计——它是一条简洁、可执行的指令,无需解析嵌套的阶段结果:
{
"directive": {
"action": "clarify",
"instruction": "Before proceeding, resolve these issues with the user:\n1. Could you specify exactly what you mean?\n2. Is this a firm requirement or still open for discussion?",
"questions": ["Could you specify exactly what you mean?", "Is this a firm requirement?"],
"contextHealth": 0.62,
"autoExtractedFacts": { "framework": "React", "deploy_to": "Vercel" },
"suggestedNextTools": ["verify_execution", "quarantine_context"]
}
}
context_loop 的工作原理
context_loop (single MCP tool call)
├── Stage 1: INGEST — Store messages to session history
├── Stage 2: RECAP — Extract intents, decisions, summaries
├── Stage 3: CONFLICT — Detect contradictions against ground truth
├── Stage 4: AMBIGUITY — Check for underspecified requirements
├── Stage 5: ENTROPY — Monitor output quality degradation (ERGO)
├── Stage 6: ABSTENTION — Multi-dimensional confidence check (RLAAR)
├── Stage 7: DISCOVERY — Suggest relevant next tools (MCP-Zero)
└── Stage 8: SYNTHESIS — Combine signals → action + directive
综合优先级: abstain > reset > clarify > proceed
每个阶段都会独立运行并隔离错误。directive 响应字段包含 LLM 所需的一切信息:
| 字段 | 描述 |
|---|---|
action | proceed · clarify · reset · abstain |
instruction | 为 LLM 的下一步提供的自然语言指导 |
questions | 汇总的澄清问题(歧义 + 弃答 + 冲突) |
contextHealth | 0–1 的综合分数。1 = 健康,0 = 已退化 |
autoExtractedFacts | 从用户消息中自动提取并作为事实依据存储的键值信息 |
suggestedNextTools | 建议 LLM 接下来考虑使用的相关工具 |
智能默认值: currentInput 会根据最后一条用户消息自动推断。像“使用 React”这样的事实会自动提取并存储。
使用协议:充分利用 Context-First
最常见的错误: LLM 将
context_loop视为可选项。事实并非如此——它是整个流程的支柱。
内置强制机制(v1.2.1+)
服务内置了四种合规机制,无需任何配置:
- 服务说明 — 通过
ServerOptions.instructions在 MCP 握手时注入完整使用协议 - 启动门控 — 首次调用非
context_loop工具时,会追加一条强制重定向提醒 - 跨工具提醒 — 连续 3 次调用未使用
context_loop后,工具响应中会出现提醒 - MCP 提示词 — 可按需使用
context-first-protocol和research-protocol提示词模板
在系统提示词中强化(可选)
When using Context-First MCP:
1. Call context_loop BEFORE any complex task
2. Call context_loop every 2–3 tool calls
3. Call context_loop AFTER generating long-form output
4. ALWAYS follow directive.action (proceed/clarify/reset/abstain/deepen/verify)
5. Use memory_store to save findings; memory_recall to retrieve them
研究任务工作流
research_pipeline 可协调记忆、阶段控制、推理和自主文件写入。它不是网页爬虫——请自行从网页搜索、GitHub、抓取工具、PDF 或其他 MCP 获取来源。
Phase 1 · Init research_pipeline(init) → sets up state, enables autonomous file writing
Phase 2 · Gather ONE web search → research_pipeline(gather) → file written to disk → repeat
Phase 3 · Analyze research_pipeline(analyze) → reasoning engines produce clean analysis file
Phase 4 · Verify research_pipeline(verify) → context health gate (non-blocking)
Phase 5 · Finalize research_pipeline(finalize) → synthesis.md + all batch files on disk
Automation shortcut:
export_research_files(outputDir, exportVerifiedReport=true) → write all report chunks
export_research_files(outputDir, exportRawEvidence=true) → write all evidence batches
始终启用自主文件写入。 文件默认写入 ./context-first-research-output/——无需 LLM 协作。传入 outputDir 可覆盖默认值。
架构
┌──────────────────────────────────────────────────────────────┐
│ @xjtlumedia/context-first-mcp-server │
│ (Core — shared logic) │
│ │
│ Layer 1: Context Health (9 tools) │
│ Layer 2: Sandbox (3 tools) │
│ Layer 3: Persistent Memory (6 tools) │
│ Layer 4: Advanced Reasoning(5 tools) │
│ Layer 5: Truthfulness (7 tools) │
│ State (4) · Orchestrator · Pipeline · Export │
└──────────────┬───────────────────────┬──────────────────────┘
│ │
┌──────▼──────┐ ┌──────▼────────┐
│ stdio-server │ │ remote-server │
│ (npx local) │ │ (Vercel) │
│ stdio │ │ Streamable │
│ 37 tools │ │ HTTP │
└──────────────┘ │ 37 tools │
└───────────────┘
- 核心库(
@xjtlumedia/context-first-mcp-server):所有工具实现。无需外部 API 密钥——默认基于启发式方法。 - stdio-server(
context-first-mcp):npx入口点、stdio 传输,包含 37 个工具。 - remote-server:Vercel 无服务器架构、Streamable HTTP 传输,包含 37 个工具。
前端演示
在浏览器中访问 context-first-mcp.vercel.app,试用全部 37 个工具。
开发
git clone https://github.com/XJTLUmedia/Context-First-MCP.git
cd Context-First-MCP
pnpm install
# Build everything
pnpm build
# Run stdio server
cd packages/stdio-server && pnpm start
# Run frontend
cd packages/frontend && pnpm dev
# Tests
pnpm test
参与贡献
请参阅 CONTRIBUTING.md。
许可证
Context-First MCP · @xjtlumedia/context-first-mcp-server · context-first-mcp
为每一位厌倦了看着 AI 跑题的开发者打造。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。