文档交互AI聊天应用

mcpChat是一个基于MCP架构的命令行AI聊天应用,允许用户通过Claude与文档进行交互,支持文档引用、编辑和模板化命令。

  • by nvs998
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nvs998/mcpChat

使用说明

mcpChat

一个命令行AI聊天应用程序,允许您使用Claude与文档进行交互。基于MCP(模型上下文协议)架构,它将AI驱动的聊天界面连接到文档服务器,该服务器公开工具、资源和提示模板。

概述

mcpChat实现了完整的MCP架构——一个公开工具、资源和提示模板的自定义MCP服务器,与通过stdio传输连接到它的自定义MCP客户端配对。客户端将检索到的上下文馈送到Claude驱动的会话循环中,所有这些都通过一个丰富的终端界面出现。

MCP架构

MCP服务器

使用FastMCP构建的服务器公开了三类MCP原语:

  • 工具 — read_document 和 edit_document 允许Claude在对话中阅读和修改文档
  • 资源 --URI可寻址端点(docs://documents, docs://documents/{doc_id})客户端可以直接获取
  • 提示 --可重复使用的提示模板(例如。 format)将结构化指令注入到消息历史记录中

MCP客户端

习俗 MCPClient 类管理MCP会话的整个生命周期:

  • 将服务器作为子进程生成,并通过stdio传输进行连接
  • 初始化并保存 ClientSession 在应用程序的持续时间内
  • 公开以下类型的方法 list_tools, call_tool, list_prompts, get_prompt,以及 read_resource

可以同时注册多个MCP客户端,从而实现跨服务器的工具聚合。

特性

  • 文档感知聊天 --使用以下命令引用查询中的任何文档 @filename 其内容会自动作为上下文注入
  • Slash命令 --运行预定义的提示模板(例如。 /format report.pdf)直接从CLI
  • 选项卡完成 --自动补全 @documents 和 /commands 由...驱动 prompt_toolkit
  • 多服务器支持 --将其他MCP服务器脚本作为CLI参数传递,以扩展可用工具

运作原理

该应用程序并行运行两个组件:

  • MCP服务器 --管理文档存储并公开 read_document 和 edit_document 工具、文档资源和提示模板
  • MCP客户端+克劳德 -CLI通过stdio连接到服务器,检索上下文,并将消息发送到Anthropic API

当您键入消息时,应用程序会解析任何 @document 引用,构建上下文感知提示,并将Claude的响应流式传输回终端。

设置

  1. 创建一个 .env 项目根目录中的文件:
ANTHROPIC_API_KEY="your-api-key"
CLAUDE_MODEL="claude-sonnet-4-6"
  1. 安装依赖项并运行:
uv venv
source .venv/bin/activate
uv pip install -e .
uv run main.py

👤 作者

纳文·索尼