Token导航 LogoToken导航TokenDH.com
MCP Task Relay logo
AI代理stdio官方级别未说明来源级核验

MCP Task Relay

MCP Server

mcp-task-relay@latest

MCP任务中继是一个企业级的模型上下文协议服务器,提供智能调度/执行器工作流,支持加密上下文验证和高效令牌使用。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude令牌优化Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

royisme

提供方

royisme

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y mcp-task-relay@latest serve --profile dev

详细介绍

MCP任务中继

![License: MIT](LICENSE) ](https://nodejs.org/)

中文文档 |英语

MCP任务中继是一个生产就绪的模型上下文协议(MCP)服务器,它为自主代理提供了一个复杂的调度器/执行器工作流。它具有企业级可靠性,具有智能问答协议和加密上下文验证功能,可防止上下文漂移,同时将令牌使用率降低95%以上。

架构概述

┌─────────────┐     MCP Protocol     ┌──────────────┐
│   MCP       │ ◄──────────────────► │  Scheduler   │
│  Clients    │    (stdio/SSE)       │   (Relay)    │
│ (Claude/    │                      │              │
│  Codex)     │                      │  ┌────────┐  │
└─────────────┘                      │  │Answer  │  │
                                     │  │Runner  │  │
                                     │  │(LLM)   │  │
                                     │  └────────┘  │
                                     │      ▲       │
                                     │      │ Ask   │
                                     │      ▼       │
       ┌─────────────────────────────┤  ┌────────┐ │
       │   Ask/Answer Protocol       │  │Context │ │
       │   (Context Envelope)        │  │Envelope│ │
       │   ┌──────────────┐          │  │+ Hash  │ │
       │   │ Executor SDK │ ◄────────┤  └────────┘ │
       │   └──────────────┘          │              │
       │   Job Execution             └──────────────┘
       │   Environment
       └──────────────────────────────────────────────┘

关键创新: 带有SHA-256验证的上下文包络协议确保了执行器和应答运行器之间的完美上下文对齐,消除了上下文漂移,同时最大限度地减少了令牌开销。

______________________________________________________________________

✨ 主要特点

🔐 上下文信封协议

通过显式、可验证的上下文快照防止上下文漂移:

  • 密码验证:SHA-256哈希确保上下文完整性
  • 令牌优化:约50个代币(最低)vs 10k-50k代币(完整历史)
  • 零会话内存:每个Ask都独立处理,并进行完整的上下文重建
  • 答案证明:使用的上下文/角色/模型/工具的加密证明

🤖 智能问答系统

  • 四层提示架构:基地→ Role → 上下文→ Task
  • 角色目录:基于YAML的可扩展角色定义
  • LLM集成:具有自动重试和验证功能的拟人克劳德
  • JSON模式验证:具有模式强制的类型安全响应
  • 决策缓存:消除了对相同查询的冗余LLM调用

💾 企业级存储

  • 带WAL模式的SQLite:高性能并发访问
  • 自动架构管理:无需手动迁移
  • 内存模式:非常适合测试和CI/CD
  • 完整审计跟踪:完成所有状态转换的事件跟踪

📊 生产可观察性

  • 结构化日志记录:通过Pino创建JSON日志
  • 实时更新:作业/任务状态的服务器发送事件(SSE)
  • 综合指标:请求延迟、缓存命中率、令牌使用情况

______________________________________________________________________

🚀 快速开始

先决条件

  • Node.js ≥ 20
  • npm小圆面包 1.3+
  • 无烟煤API密钥 (适用于答案跑者)

安装

# NPM (recommended for production)
npm install -g mcp-task-relay

# Or use npx for one-off execution
npx -y mcp-task-relay@latest serve --profile dev

基本用法

# Start with in-memory storage (development)
mcp-task-relay serve \
  --profile dev \
  --storage memory \
  --config-dir ./.mcp-task-relay

# Start with persistent storage (production)
export ANTHROPIC_API_KEY="sk-ant-..."
mcp-task-relay serve \
  --profile prod \
  --storage sqlite \
  --sqlite ./data/relay.db \
  --config-dir ./config

______________________________________________________________________

📖 配置

CLI选项

标志描述环境变量
--profile 环境配置文件(dev/stating/prod)TASK_RELAY_PROFILE
--config-dir 配置目录路径TASK_RELAY_CONFIG_DIR
--storage 存储后端(内存/sqlite)TASK_RELAY_STORAGE
`--sqlite
`SQLite数据库文件路径TASK_RELAY_SQLITE_URL
--transport 传输协议(仅限第2阶段的stdio)TASK_RELAY_TRANSPORT

环境变量

必修的:

  • ANTHROPIC_API_KEY -Answer Runner的Anthropic API密钥

可选:

  • TASK_RELAY_PROMPTS_DIR --自定义提示目录
  • TASK_RELAY_SCHEMATA_DIR --自定义JSON模式目录
  • TASK_RELAY_POLICY_FILE --自定义策略YAML文件
  • TASK_RELAY_ANSWER_RUNNER_ENABLED --启用/禁用应答运行程序(默认值:true)

上下文信封(执行器侧):

  • TASK_RELAY_JOB_ID --当前作业标识符
  • TASK_RELAY_STEP_ID --当前执行步骤
  • TASK_RELAY_REPO --存储库标识符
  • TASK_RELAY_COMMIT_SHA --Git提交SHA
  • TASK_RELAY_POLICY_VERSION --策略版本
  • TASK_RELAY_FACT_* --自定义事实(例如。, TASK_RELAY_FACT_branch=main)

配置目录结构

.mcp-task-relay/
├── config.yaml              # Main configuration
├── policy.yaml              # Security policy rules
├── prompts/                 # Role definitions
│   ├── role.diff_planner@v1.yaml
│   ├── role.test_planner@v1.yaml
│   └── role.schema_summarizer@v1.yaml
└── schemata/                # JSON Schemas
    ├── ask.schema.json
    ├── answer.schema.json
    └── artifacts/
        ├── diff_plan.schema.json
        └── test_plan.schema.json

示例 config.yaml:

askAnswer:
  port: 3415
  longPollTimeoutSec: 25
  sseHeartbeatSec: 10
  runner:
    enabled: true
    model: claude-3-5-sonnet-20241022
    maxRetries: 1
    defaultTimeout: 60

______________________________________________________________________

🔧 MCP客户端集成

Codex CLI

# Add to Codex configuration
codex mcp add task-relay -- \
  mcp-task-relay serve \
  --profile prod \
  --storage sqlite \
  --sqlite ./relay.db

克劳德代码(桌面)

添加到您的Claude Code MCP设置中(~/.claude-code/mcp.json):

{
  "mcpServers": {
    "task-relay": {
      "command": "mcp-task-relay",
      "args": [
        "serve",
        "--profile", "prod",
        "--storage", "sqlite",
        "--sqlite", "./relay.db"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

Gemini代码辅助

# Configure in Gemini workspace settings
gemini config mcp add task-relay \
  --command "mcp-task-relay serve" \
  --args "--profile prod --storage sqlite"

______________________________________________________________________

🎯 上下文信封协议

概述

上下文包络协议通过显式、加密验证的上下文快照消除了上下文漂移。

问题: 传统方法需要传输完整的对话历史(10k-50k令牌),导致:

  • 大量代币使用和成本
  • 上下文窗口限制
  • 执行器和应答运行器之间可能存在上下文不一致

解决方案: 具有SHA-256验证的结构化上下文快照(50-300个令牌)。

令牌使用情况比较

方法令牌使用上下文完整性用例
无上下文~50个令牌答案运行者无视上下文❌
上下文信封50-300个代币密码学的适用于95%以上的场景
历史10k-50k代币完成需要完整上下文的复杂决策

上下文包络结构

最小(默认环境):

{
  "job_snapshot": {},
  "role": "default"
}

代币成本: 约50个代币

典型(定制事实生产):

{
  "job_snapshot": {
    "repo": "github.com/user/repo",
    "commit_sha": "abc123def456...",
    "env_profile": "production",
    "policy_version": "2.0"
  },
  "facts": {
    "branch": "main",
    "pr_number": "123"
  },
  "tool_caps": {
    "database": {
      "timeout_ms": 5000
    }
  },
  "role": "code_reviewer"
}

代币成本: ~150-200个代币

验证流程

1. Executor builds context_envelope
   └─► Computes SHA-256 hash → context_hash

2. Ask sent with both context_envelope + context_hash

3. Scheduler stores Ask in database

4. Answer Runner retrieves Ask
   ├─► Verifies: computed_hash == stored_hash
   └─► FAIL-FAST on mismatch (E_CONTEXT_MISMATCH)

5. Answer Runner generates response
   └─► Creates attestation with context_hash

6. Answer sent back to Executor

7. Executor verifies attestation
   └─► Ensures context_hash matches original

错误代码

  • E_CONTEXT_MISMATCH --上下文哈希验证失败
  • E_CAPS_volation --违反了工具能力约束
  • E_NO_CONTEXT_ENVELOPE --缺少所需的上下文信封

智能默认值(令牌优化)

SDK会自动省略默认值以尽量减少令牌使用:

  • repo:如果“未知”,则省略(默认)
  • commit_sha:如果“未知”,则省略(默认)
  • env_profile:如果为“dev”,则省略(默认)
  • policy_version:如果为“1.0”,则省略(默认)
  • facts:如果为空,则省略
  • tool_caps:如果没有指定工具,则省略

结果: 在典型场景中,代币减少75-85%。

______________________________________________________________________

🛠️ 发展

从源代码构建

# Clone repository
git clone https://github.com/royisme/mcp-task-relay.git
cd mcp-task-relay

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Link for local development
npm link

项目结构

src/
├── cli.ts                   # CLI entry point
├── server.ts                # Runtime bootstrap
├── answer-runner/           # LLM-powered answering engine
│   ├── runner.ts            # Core Answer Runner
│   ├── role-catalog.ts      # YAML role loader
│   └── prompt-builder.ts    # 4-layer prompt architecture
├── core/                    # Business logic
│   └── job-manager.ts       # Job orchestration
├── db/                      # Data persistence
│   ├── connection.ts        # SQLite setup
│   ├── asks-repository.ts   # Ask/Answer storage
│   └── answers-repository.ts
├── models/                  # Type definitions
│   ├── schemas.ts           # Zod schemas
│   └── states.ts            # State machine & error codes
├── sdk/                     # Executor SDK
│   └── executor.ts          # Context envelope auto-packing
├── services/                # HTTP/SSE services
│   └── ask-answer.ts        # Ask/Answer API endpoints
└── utils/                   # Shared utilities
    ├── hash.ts              # Context hashing & verification
    └── logger.ts            # Structured logging

prompts/                     # Built-in role catalog
schemata/                    # JSON Schema definitions

______________________________________________________________________

🤝 贡献

欢迎投稿!请阅读我们的 贡献指南 在提交PR之前。

开发工作流程

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

______________________________________________________________________

📄 许可证

麻省理工学院©2025罗伊。看 许可证 了解详情。

______________________________________________________________________

🙏 致谢

  • Anthropic -对于Claude API和MCP规范
  • 更好的SQLite3 --高性能SQLite绑定
  • 黄道 --类型安全架构验证

______________________________________________________________________

📮 支持

  • 问题:
  • 讨论:

目录标签

目录标签

TypeScriptClaude令牌优化任务调度本地部署模型上下文协议加密验证企业级

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

mcp-task-relay@latest

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP