我的第一台ts mcp服务器
模型上下文协议(MCP)服务器和客户端的TypeScript实现,通过AI驱动的聊天界面提供文档管理功能。
特性
- MCP服务器:为文档管理提供工具、资源和提示
- 工具:编辑和阅读文档内容 - 资源:列出可用文档并按ID检索文档内容 - 提示:将文档格式化为Markdown语法
- MCP客户端:连接到服务器并使用Genkit和Anthropic的Claude模型
- 交互式聊天界面:通过命令行界面查询文档并与MCP服务器交互
先决条件
- 包子 运行时(v.或更高版本)
- 无烟煤API键
设置
.安装依赖项:
bun install.创建一个 env.json 文件基于 env.example.json:
cp env.example.json env.json.将您的Anthropic API密钥添加到 env.json:
{
"ANTHROPIC_API_KEY": "your-api-key-here"
}跑步
启动MCP客户端和服务器:
bun run index.ts该应用程序将:
- 连接到MCP服务器
- 显示可用的工具、资源和提示
- 启动交互式聊天界面
用法
跑步后,您可以:
- 查询文档:询问有关可用文件的问题
- 使用自动补全:类型
@后面是文档ID前缀,用于自动完成文档名称 - 设置文档格式:使用
/format将文档重新格式化为Markdown - 退出:类型
quit退出聊天界面
查询示例
- “有哪些文件可用?”
- “阅读deposition.md的内容”
- “编辑financials.docx文档”
- “/format plan.md”
项目结构
.
├── index.ts # Main entry point
├── chat.ts # Interactive chat interface
├── mcp_client/ # MCP client implementation
│ ├── index.ts # MCPClient class
│ └── ai.client.ts # Genkit AI client setup
├── mcp_server/ # MCP server implementation
│ ├── index.ts # Server setup and initialization
│ ├── tools.ts # Document editing and reading tools
│ ├── resources.ts # Document resources and templates
│ └── prompts.ts # Document formatting prompts
└── env.json # Environment configuration (not in git)技术
- 包子 -快速的一体化JavaScript运行时
- @模型上下文协议/sdk -MCP-SDK
- fastmcp -快速MCP服务器框架
- Genkit -AI编排框架
- genkitx人 -Genkit的Anthropic插件
- @询问者/提示 -交互式命令行提示
许可证
教育项目
