
这是一个使用Deno编写的简单MCP服务器模板,并通过JSR.io发布。可选地,可以使用Deno Deploy进行托管。
示例服务器还使用Deno KV实现了一个简单的知识图谱工具,并允许会话恢复。
‼️ 默认情况下,此模板服务器调用await Deno.openKv()——所有KV功能将在通过"command": "deno run -A --unstable-kv jsr:@your-scope/your-package"访问您的服务器的所有用户之间共享。这在生产环境中可能不是您想要的。确保用户只能读取他们应该有权访问的内容!
ℹ️ 需要Deno。使用npm install -g deno或curl -fsSL <https://deno.land/install.sh> | sh
替换以下示例中的服务器名称和包位置,以对应于您自己的MCP服务器。
如果需要,可以在.env中设置HOSTNAME和PORT。
claude-desktop-config.json{
"mcpServers": {
"my-mcp-server": {
"command": "deno run -A --unstable-kv jsr:@your-scope/your-package"
},
}
}
claude-desktop-config.json使用deno task start启动服务器。
{
"mcpServers": {
"my-mcp-server": {
"url": "http://localhost:3001/mcp"
},
}
}
claude-desktop-config.json{
"mcpServers": {
"my-mcp-server": {
"command": "deno run -A --unstable-kv absolute/path/to/main.ts"
},
}
}
运行deno task compile。
然后您可以像使用其他任何MCP服务器一样使用您的二进制文件,例如:
{
"mcpServers": {
"my-local-mcp-server": {
"command": "absolute/path/to/binary"
},
}
}
更多信息,请参阅Deno Compile 文档。
⚠️ 您必须在本仓库中搜索"phughesmcr"、"P. Hughes"、"github@phugh.es"和"deno-mcp-template",并将其替换为您自己的信息。
⚠️ 记得在您的Github仓库设置和Deno Deploy项目设置(如适用)中设置任何环境变量。
⚠️ 记得检查routes/和static/中的所有文件,因为这些文件(例如openapi.yaml)可能需要修改以匹配您的MCP服务器的功能/端点。
ℹ️ 示例服务器使用deno run -A运行,这启用了Deno的所有权限。在部署到生产之前,您应微调权限。
ℹ️ 运行deno task prep以运行格式化程序、代码检查器和代码检查。
为了让用户能够从互联网运行您的服务器,此示例使用JSR.io发布服务器。
JSR是“现代JavaScript和TypeScript的开源包注册表”,其工作方式类似于NPM。
以这种方式发布您的服务器可以让用户使用deno run jsr:@your_scope/your_server_name运行它,而无需克隆仓库并设置绝对路径。
要使这起作用,您需要设置您的JSR.io帐户,并替换代码库中的相关值以匹配您的包名和范围。
如果您不想在JSR上发布,请删除.github/workflows/publish.yml。
如果您仅希望您的服务器通过JSR发布,则使用Deno Deploy不是必需的。然而,使用Deno Deploy实现一个简单的服务器可能会有多种用途。例如,托管一个描述您的服务器给LLMs的llms.txt文件;添加身份验证路由等。
要使这起作用,您需要设置您的Deno Deploy,并替换代码库中的相关值以匹配您的包名。
如果您不打算使用Deploy,请删除.github/workflows/deploy.yml。
"Deno KV是直接构建到Deno运行时中的键值数据库,在Deno.Kv命名空间中可用。它可以用于许多类型的数据存储用例,但在存储受益于非常快速读写操作的简单数据结构方面表现出色。Deno KV在Deno CLI和Deno Deploy中都可用。" - Deno KV手册
Deno KV可以在没有任何额外依赖项或安装的情况下使用。本地它将创建一个基于文件的数据库,如果您正在使用Deploy,它已经内置其中,无需额外配置。
此模板服务器实现了来自ModelContextProtocol Github的知识图谱内存服务器示例,使用KV来存储和检索图。
该仓库包括以下提高生活质量的文件,虽然它们对于服务器运行不是必要的,但可以增强您的编程体验:
.cursor/rules/ Cursor代理规则。.github/ 向您的仓库添加Github赞助者信息和其他Github功能,如工作流程。.vscode/ 包含一些推荐的扩展,并将Deno设为默认格式化程序。vendor/schema.ts 是来自Anthropic的2025-03-26 MCP模式。CLAUDE.md 是Claude Code的起始文件。在首次更改后运行claude init以保持其更新。.cursorignore 告诉Cursor除了.gitignore之外还要排除哪些文件。*.md。这些markdown文件,例如"CODE_OF_CONDUCT.md",向您的Github仓库添加各种标签和标签,并有助于社区管理。vendor/schema.ts是来自Anthropic的2-2025-03-26 MCP模式(MIT许可证)。
MIT