Token导航 LogoToken导航TokenDH.com
Pubsub MCP logo
运维云端未说明官方级别未说明来源级核验

Pubsub MCP

MCP Server

该项目探索使用发布/订阅消息传递作为MCP服务器和AI服务之间的通信层,实现灵活、可扩展且解耦的AI代理架构。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
分布式系统TypeScript云端部署

安装说明

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

作者 / 组织

stiproot

提供方

stiproot

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

PubSub MCP

![License](LICENSE)

探索发布/订阅消息作为模型上下文协议(MCP)服务器和AI代理的通信策略。

目录

- 先决条件 - 快速开始

关于

本项目探索使用发布/订阅消息传递(通过NATS JetStream和Dapr)作为MCP服务器和AI服务之间的通信层。 传统的MCP实现使用stdio或HTTP传输进行直接的客户端-服务器通信。 该项目研究了发布/订阅模式是否可以实现更灵活、可扩展和解耦的AI代理架构。

正在探索的关键问题:

  • MCP工具调用能否通过发布/订阅消息有效路由?
  • 异步发布/订阅如何影响LLM采样请求/响应流?
  • 通过消息队列将MCP客户端与服务器解耦的好处和权衡是什么?
  • 发布/订阅能否通过共享MCP工具启用多代理协作模式?

建筑

该存储库演示了基于发布/订阅的MCP架构,其中包含两个主要服务:

┌──────────────┐         ┌──────────────┐         ┌──────────────┐
│              │         │              │         │              │
│   AI-SVC     │◄────────┤ NATS/JetStream├────────►│ readme-mcp   │
│              │         │   + Dapr     │         │  (MCP Server)│
│   LLM        │         │              │         │              │
│   Sampling   │         │  Pub/Sub     │         │  MCP Tools   │
│              │         │              │         │              │
└──────────────┘         └──────────────┘         └──────────────┘
      │                                                   │
      │                                                   │
      └─────── Tool Calls ──────────►                   │
                                                          │
      ◄─────── Tool Responses ─────────────────────────────┘

沟通模式:

  • 工具请求: mcp-tool-requests → 自述mcp过程→ mcp-tool-responses
  • LLM取样: 自述文件mcp→ ai-stream → ai svc(OpenAI)→ ai-stream-responses

基础设施:

  • NATS JetStream: 发布/订阅的消息代理
  • Dapr: 标准化酒吧/酒吧、州管理的服务网格
  • PostgreSQL: Dapr的状态存储
  • Docker编写: 当地发展环境

主要特点

  • 异步MCP工具执行: MCP工具调用通过发布/订阅主题路由,而不是直接HTTP/stdio
  • 解耦服务: AI代理和MCP服务器通过消息队列而不是直接连接进行通信
  • LLM采样集成: MCP服务器可以通过发布/订阅请求LLM采样,而无需与AI服务紧密耦合
  • TS实施效果: 使用Effect TS演示用于类型安全、可组合服务的函数式编程模式
  • CloudEvents标准: 所有发布/订阅消息均遵循CloudEvents规范
  • MCP服务器示例: readme-mcp演示了readme验证、生成和AI支持的建议

入门指南

先决条件

# Required software
Node.js >= 22.0.0
npm >= 9.0.0
Docker & Docker Compose
Dapr CLI

# Install Dapr CLI (macOS)
brew install dapr/tap/dapr-cli
dapr init

快速开始

最快的入门方法是遵循详细的快速入门指南:

ai-mcp-quickstart.md 有关分步设置说明。

快速概述:

# 1. Start infrastructure (NATS, Dapr, PostgreSQL)
docker-compose -f docker-compose.ai-mcp.yml up -d

# 2. Initialize NATS stream
cd src/ai-svc
npm run init-stream

# 3. Start ai-svc with Dapr (Terminal 1)
cd src/ai-svc
npm install && npm run build
dapr run --app-id ai-svc --app-port 3004 --dapr-http-port 3500 \
  --components-path ../dapr/components.local -- npm run dev

# 4. Start readme-mcp with Dapr (Terminal 2)
cd src/mcps/readme-mcp
npm install && npm run build
dapr run --app-id readme-mcp --app-port 3005 --dapr-http-port 3502 \
  --components-path ../dapr/components.local -- npm run dev

# 5. Run integration tests (Terminal 3)
cd src/mcps/readme-mcp
export OPENAI_API_KEY=your-key-here
npm test src/__tests__/integration/

项目结构

pubsub-mcp/
├── src/
│   ├── ai-svc/                 # AI service for LLM sampling
│   │   ├── src/
│   │   ├── README.md           # Detailed ai-svc documentation
│   │   └── package.json
│   ├── mcps/
│   │   └── readme-mcp/         # MCP server for README tools
│   │       ├── src/
│   │       ├── README.md       # Detailed readme-mcp documentation
│   │       └── package.json
│   └── dapr/
│       └── components.local/   # Dapr component configurations
├── docs/
│   ├── guides/
│   │   └── effect-ts.standards.md  # Effect-TS coding standards
│   └── templates/
│       └── __README.md         # README template
├── ai-mcp-quickstart.md        # Quick start guide
├── docker-compose.ai-mcp.yml   # Local development infrastructure
└── README.md                   # This file

文档

详细文档按服务和主题组织:

服务文档

指南

架构文档

有关详细的体系结构信息,请参阅:

发展

代码组织

这是一个具有独立服务的monorepo风格的项目:

  • ai svc: 用于LLM采样的独立Node.js服务
  • 自述文件mcp: 用于README操作的独立MCP服务器
  • dapr/components.local: 共享Dapr组件配置

每个服务都有自己的:

  • package.json 和依赖关系
  • tsconfig.json 用于TypeScript编译
  • README.md 带有特定服务文档
  • 测试套件和测试配置

开发工作流程

# Install dependencies for a service
cd src/ai-svc  # or src/mcps/readme-mcp
npm install

# Build
npm run build

# Run tests
npm test

# Run with Dapr
npm run dapr:run

添加新的MCP服务器

要添加新的MCP服务器以探索其他发布/订阅模式:

  1. 在下创建新目录 src/mcps/your-mcp-server/
  2. 使用实现MCP服务器 @modelcontextprotocol/sdk
  3. 与Dapr发布/订阅集成,用于工具请求/响应
  4. 在中添加Dapr组件配置 src/dapr/components.local/
  5. 如果需要额外的基础设施,请更新docker compose
  6. 特定于服务的README中的文档

自述文件mcp 作为参考实现。

测试

单元测试

每个服务都有自己的测试套件:

# Test ai-svc
cd src/ai-svc
npm test

# Test readme-mcp
cd src/mcps/readme-mcp
npm test

集成测试

集成测试验证服务之间的发布/订阅通信:

# Ensure services are running first (see Quick Start)
cd src/mcps/readme-mcp
export OPENAI_API_KEY=your-key-here
npm test src/__tests__/integration/

集成测试覆盖率:

  • 通过发布/订阅调用MCP工具(验证自述、生成自述、检查完整性)
  • LLM采样请求/响应流程(建议改进)
  • 并发请求处理
  • 错误处理和超时

有关详细的测试文档,请参阅 ai-mcp quickstart.md#测试覆盖率.

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

联系

项目链接:

致谢

目录标签

目录标签

分布式系统TypeScript云端部署发布订阅本地部署消息队列AI通信NATS

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP