文档管理聊天接口

一个基于TypeScript实现的模型上下文协议(MCP)服务器和客户端,通过AI驱动的聊天界面提供文档管理功能。

  • by marckent04
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 marckent04/first-mcp-client-and-server

使用说明

我的第一台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 <docId> 将文档重新格式化为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)

技术

许可证

教育项目