本项目是一个实现了Model Context Protocol (MCP) 的服务器,运行在Cloudflare Workers平台上。它提供了一个后端服务,允许兼容MCP的LLM客户端通过标准协议(如Server-Sent Events, SSE)与其通信,获取上下文信息并调用特定功能(工具)。
主要功能点:
- MCP服务器核心: 实现了MCP协议,能够接收来自LLM客户端的JSON-RPC请求。
- 工具注册与执行: 注册了例如“用户详情”和“GitHub详情”等工具,这些工具可以被LLM客户端调用,以获取认证用户的相关数据。
- 集成GitHub认证: 使用'better-auth'库实现了通过GitHub进行用户身份验证的功能,保护敏感工具的访问安全。
- 数据访问能力: 通过工具访问数据库(使用Drizzle ORM和Neon)和GitHub API,为LLM提供丰富的上下文信息。
- SSE传输支持: 服务器配置为通过Server-Sent Events (SSE) 协议与客户端通信。
安装步骤:
- 克隆仓库: 'git clone https://github.com/dead8309/better-auth-mcp-hono/'
- 安装依赖: 进入项目目录并使用pnpm安装依赖: 'pnpm install'
- 设置环境变量: 复制'.env.example'到'.dev.vars'和'.env',并填写必要的变量:
- 'DATABASE_URL': Neon或兼容的PostgreSQL数据库连接字符串。
- 'GITHUB_CLIENT_ID', 'GITHUB_CLIENT_SECRET': 你的GitHub OAuth应用的凭据。
- 'BETTER_AUTH_SECRET', 'BETTER_AUTH_URL': 'better-auth'认证服务所需的秘密和URL。
- 其他 Cloudflare Workers 相关的环境变量(如MCP_OBJECT的Durable Object绑定)。
- 设置数据库: 配置并迁移你的数据库(如果使用Neon,参考其文档)。本项目使用Drizzle ORM进行数据库操作。
- 设置GitHub OAuth应用: 在GitHub上创建一个OAuth应用,配置回调URL(Callback URL),通常是你的服务器URL加上'/api/auth/callback/github'。
- 安装并配置Cloudflare Wrangler CLI: 如果还没有,请安装并登录你的Cloudflare账号,配置wrangler CLI。
- 部署到Cloudflare Workers:
- 将'.dev.vars'中的秘密量添加到Cloudflare Workers环境中:'pnpm wrangler secret bulk .dev.vars'
- 部署你的Worker:'pnpm deploy'
服务器配置 (针对MCP客户端):
要从MCP客户端连接到此服务器,你需要将服务器的连接信息添加到客户端的配置中。典型的MCP客户端配置需要:
- 服务器名称: 给你的服务器起一个容易识别的名称(例如:'better-auth-server')。
- 连接类型: 指定连接方式,本项目支持通过URL访问,并推荐使用Server-Sent Events (SSE)。
- 服务器地址 (URL): 这是你部署在Cloudflare Workers上的服务器的公共URL。请使用你实际部署后获得的URL,并在后面加上'/sse'路径。例如:'https://你的部署域名/sse'。
如果你的MCP客户端不支持直接配置远程URL或SSE,你可能需要使用'mcp-remote'之类的工具作为代理。在这种情况下,客户端配置中的'command'和'args'会指向'mcp-remote',并将服务器URL作为参数传递给它。
基本使用方法:
- 连接客户端: 使用兼容MCP协议的LLM客户端,配置服务器连接信息(如上所述的URL和名称),然后连接到服务器。
- 进行认证: 首次连接或访问受保护工具时,客户端会引导你完成OAuth认证流程(本项目使用GitHub OAuth)。你需要通过浏览器登录GitHub并授权。认证成功后,客户端将获得会话令牌。
- 调用工具: 认证成功后,LLM可以调用服务器注册的工具,例如'user-details'(获取数据库中存储的用户信息)或'github-details'(获取通过OAuth获得的GitHub用户信息)。服务器将验证你的会话,并返回工具执行的结果。
信息
分类
开发者工具