关于 Token Context MCP
所提供的 README 介绍的是用于列出 MCP 服务的 MCP Registry,而非名称所示的 Token Context MCP 项目。文档还说明了发布 CLI 和服务发布认证方式,但未介绍所标示的代码上下文或 Tree-sitter 功能。
主要功能
- 01提供 MCP 服务列表 API
- 02在开发环境中使用 PostgreSQL 运行 Registry
- 03使用 mcp-publisher CLI 发布服务
- 04支持 GitHub OAuth 和 OIDC 认证
- 05通过 DNS 或 HTTP 验证域名所有权
适用场景
- 01浏览可用的 MCP 服务列表
- 02运行本地 Registry 开发环境
- 03从服务自身项目发布服务
- 04通过 GitHub 或域名验证进行发布认证
MCP 相关
Registry API 向 MCP 客户端提供 MCP 服务列表。文档中的 `mcp-publisher` CLI 用于向 Registry 发布服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 注册表
MCP 注册表为 MCP 客户端提供 MCP 服务列表,可视为 MCP 服务的应用商店。
📤 发布我的 MCP 服务 | ⚡️ 在线 API 文档 | 👀 生态愿景 | 📖 完整文档
开发状态
2025-10-24 更新:注册表 API 已进入API 冻结期(v0.1) 🎉。未来一个月或更久,API 将保持稳定,不会有破坏性变更,让集成方可以放心地实现支持。此冻结适用于 v0.1,v0 的开发仍在继续。我们将利用这段时间在真实集成中验证 API,并收集反馈,为 v1 正式发布做好准备。感谢大家的贡献与耐心——正是你们的参与帮助我们走到了今天!
2025-09-08 更新:注册表已启动预览版 🎉(公告博客文章)。虽然系统现在更加稳定,但这仍是预览版,可能会发生破坏性变更或数据重置。之后将发布正式可用(GA)版本。欢迎通过 GitHub 讨论区或 #registry-dev Discord(此处提供加入详情)分享反馈。
注册表工作组:
- Radoslav (Rado) Dimitrov (Stacklok) @rdimitrov - 工作组负责人
- Tadas Antanavicius (PulseMCP) @tadasant
- Bob Dickinson (TeamSpark) @BobDickinson
- Preeti (Pree) Dewani (Ravenmail) @pree-dew
参与贡献
我们通过多个渠道开展协作——请参阅 modelcontextprotocol.io/community/communication。
想法通常(但不总是)会沿着以下流程推进:
- Discord - 实时社区讨论
- 讨论区 - 提出并讨论产品/技术需求
- Issues - 跟踪范围明确的技术工作
- Pull Requests - 为 Issues 贡献代码
快速开始:
前置条件
- Docker
- Go - 版本以 go.mod 中的
go指令为准;Go 工具链会自动为你获取 - ko - Go 的容器镜像构建工具(安装说明)
- golangci-lint - 版本以 ci.yml 中
golangci-lint-action的固定版本为准,确保本地 lint 与 CI 一致
运行服务
# Start full development environment
make dev-compose
这会使用 PostgreSQL 在 localhost:8080 启动注册表。数据库使用临时存储,每次重启容器时都会重置,确保开发和测试环境保持干净。
注意: 注册表使用 ko 构建容器镜像。make dev-compose 命令会自动使用 ko 构建注册表镜像,并在启动服务前将其加载到本地 Docker 守护进程中。
默认情况下,注册表会从生产 API 获取种子数据,并筛选出部分服务(以缩短启动时间)。这样可以确保本地环境与生产环境行为一致,且所有种子数据都通过验证。对于离线开发,可以通过 MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose 从文件加载种子数据且不进行验证。
可以通过 docker-compose.yml 中的环境变量配置此设置;参考 .env.example。
替代方案:运行预构建的 Docker 镜像
预构建的 Docker 镜像会自动发布到 GitHub Container Registry。请注意,镜像不包含 PostgreSQL,因此你需要自行运行 PostgreSQL,并通过 MCP_REGISTRY_DATABASE_URL 将注册表指向它(可参阅 docker-compose.yml 中的可用示例):
# Run latest stable release
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
# Run latest from main branch (continuous deployment)
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
# Run specific release version
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
# Run development build from main branch
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
可用标签:
- 版本发布:
latest、v1.0.0、v1.1.0等。 - 持续构建:
main(最新的 main 分支构建) - 开发构建:
main-<date>-<sha>(特定提交的构建)
发布服务
发布 MCP 服务并非通过向此仓库提交拉取请求来完成。添加 server.json、服务目录或 data/seed.json 中的条目,都不会发布或列出你的服务,即使拉取请求已合并也不行。请改用你自己的服务项目中的 mcp-publisher CLI。
我们构建了一个简单的 CLI 来发布服务。你可以这样使用:
# Build the latest CLI
make publisher
# Use it!
./bin/mcp-publisher --help
更多详情请参阅发布工具指南。
其他命令
# Run lint, schema validation, and all tests
# Note: this also runs `make dev-down`, stopping any running dev-compose environment
make check
开发时还有一些其他实用命令。运行 make help 了解详情,或查看 Makefile。
架构
项目结构
├── cmd/ # Application entry points
│ ├── publisher/ # Server publishing tool
│ └── registry/ # Registry API server
├── data/ # Seed data
├── deploy/ # Deployment configuration (Pulumi)
├── docs/ # Documentation
├── internal/ # Private application code
│ ├── api/ # HTTP handlers and routing
│ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
│ ├── config/ # Configuration management
│ ├── database/ # Data persistence (PostgreSQL)
│ ├── importer/ # Seed data import
│ ├── service/ # Business logic
│ ├── telemetry/ # Metrics and monitoring
│ └── validators/ # Input validation
├── pkg/ # Public packages
│ ├── api/ # API types and structures
│ │ └── v0/ # Version 0 API types
│ └── model/ # Data models for server.json
├── scripts/ # Development and testing scripts
├── tests/ # Integration tests
└── tools/ # CLI tools and utilities
└── validate-*.sh # Schema validation tools
身份验证
发布支持多种身份验证方式:
- GitHub OAuth——登录 GitHub 后发布
- GitHub OIDC——从 GitHub Actions 发布
- DNS 验证——证明对域名及其子域名的所有权
- HTTP 验证——证明对域名的所有权
注册表会在发布时验证命名空间的所有权。例如,要发布以下服务:
io.github.domdomegg/my-cool-mcp,你必须以domdomegg的身份登录 GitHub,或在 domdomegg 的仓库中运行 GitHub Actionme.adamjones/my-cool-mcp,你必须通过 DNS 或 HTTP 验证证明你拥有adamjones.me
社区项目
查看社区项目,了解社区创建的值得关注的注册表相关项目。
更多文档
如果这里没有解答你的问题,请参阅文档了解详情!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。