命令行聊天工具

MCP Chat是一个基于Anthropic Claude AI和Model Control Protocol的交互式命令行聊天工具,提供文档检索、命令执行和工具集成功能,适用于开发者在终端中高效使用AI。

  • by Marcus-Boni
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Marcus-Boni/MCP-Introduction-Course-Anthropic

使用说明

🤖 MCP聊天室

一个由Anthropic Claude和模型控制协议驱动的交互式命令行聊天机器人

功能 • 安装 • 使用 • 发展 • 做出贡献


📋 目录

概览

MCP Chat 是一个功能强大的命令行界面,它通过Anthropic API实现了与人工智能模型的完美交互。它构建于(某种)架构之上。 **模型控制协议(MCP)**它提供文档恢复、基于命令的提示以及可扩展的工具集成,以提高生产力。

非常适合希望直接从终端与Claude AI互动的开发者,支持文档上下文和自定义命令等高级功能。

功能

  • 💬 交互式聊天界面 - 与Claude AI模型进行实时对话
  • 📄(文件/纸张) 智能文档检索 - 使用语法快速访问文档 @
  • ⚡(闪电符号,常用于表示快速、能量或惊险等意象) 命令系统 - 执行带有前缀的预定义命令 /
  • 🔧(扳手,常用于表示修理、工具等意思) MCP集成 - 通过模型控制协议可扩展的工具系统
  • 🎨(颜料/绘画的颜料) 丰富的CLI(命令行界面)体验 - 使用prompt-toolkit实现自动补全和用户友好的界面
  • 🔄 翻译为中文是:循环/重复 多轮对话 - 在整个对话中保持上下文连贯
  • 🛠️(扳手,象征修理、工具或技术) 工具执行 - 在聊天界面中完美执行自定义工具

先决条件

开始之前,请确保你已准备好以下物品:

要求 版本 描述
python 3.9及以上版本 下载
Anthropic API密钥 - 获取您的密钥

安装

1️⃣ 克隆仓库

git clone https://github.com/Marcus-Boni/MCP-Introduction-Course-Anthropic.git
cd mcp-chat

2️⃣ 配置环境变量

创建一个文件 .env 项目的基础:

cp .env.example .env  # Ou crie manualmente

添加您的设置:

ANTHROPIC_API_KEY=sua_chave_api_aqui
CLAUDE_MODEL=claude-3-5-sonnet-20241022
USE_UV=1  # Configure como 0 para usar pip

3️⃣ 安装依赖项

🚀 选项A:使用uv(推荐)

紫外线 它是一个极其快速的Python包安装和解决工具。

# Instale o uv
pip install uv

# Crie e ative o ambiente virtual
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Instale as dependências
uv pip install -e .

# Execute a aplicação
uv run main.py

🐍 选项B:使用pip

# Crie e ative o ambiente virtual
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Instale as dependências
pip install anthropic python-dotenv prompt-toolkit "mcp[cli]==1.8.0"

# Execute a aplicação
python main.py

使用

基础聊天

只需输入您的信息即可开始对话:

> Olá! Como você pode me ajudar hoje?
Assistente: Olá! Sou Claude, um assistente de IA. Posso te ajudar com...

文件恢复

使用符号引用文档 @ 接着是文件名:

> Pode explicar o conteúdo em @deposition.md?
Assistente: Com base no documento de depoimento, aqui está um resumo...

> Compare @document1.md e @document2.md
Assistente: Deixe-me comparar esses dois documentos para você...

可用文件:

  • deposition.md - 证词文件
  • report.pdf - 技术报告
  • financials.docx - 财务数据
  • outlook.pdf - 未来的展望
  • plan.md - 项目计划
  • spec.txt - 技术规格

执行命令

使用前缀执行预定义命令 /:

> /summarize deposition.md
Assistente: Aqui está um resumo conciso do documento...

> /format report.pdf
Assistente: Reformatando o documento em markdown...

💡 小贴士: 压力 Tab 用于自动补全命令和文件!

会话示例

> Olá!
Assistente: Olá! Como posso ajudar hoje?

> @deposition.md
Assistente: Carreguei o documento de depoimento. O que você gostaria de saber?

> /summarize deposition.md
Assistente: Aqui está um resumo: Este depoimento cobre o testemunho 
de Angela Smith, P.E., sobre...

> Quais são os pontos principais?
Assistente: Os pontos principais do depoimento são...

键盘快捷键

快捷键 动作
Tab 自动补全命令和文档
@ 触发文档自动完成
/ 触发命令自动完成
Ctrl+C 退出应用程序

发展

项目结构

mcp-chat/
├── core/
│   ├── __init__.py       # Inicialização do módulo core
│   ├── chat.py           # Funcionalidade base de chat
│   ├── cli.py            # Implementação da interface CLI
│   ├── cli_chat.py       # Recursos de chat específicos da CLI
│   ├── claude.py         # Integração com API Claude
│   └── tools.py          # Sistema de gerenciamento de ferramentas
├── main.py               # Ponto de entrada da aplicação
├── mcp_server.py         # Implementação do servidor MCP
├── mcp_client.py         # Implementação do cliente MCP
├── pyproject.toml        # Dependências do projeto
├── .env                  # Variáveis de ambiente (criar a partir de .env.example)
├── .env.example          # Template de ambiente
├── .gitignore            # Regras do Git ignore
└── README.md             # Este arquivo

添加新文档

编辑 mcp_server.py 并给字典添加条目 docs:

docs = {
    "seu-doc.md": "Conteúdo do seu documento aqui",
    "outro-doc.pdf": "Conteúdo de outro documento",
    # ...documentos existentes...
}

创建自定义命令

在提示符中添加新的命令 mcp_server.py:

@mcp.prompt(
    name="seu_comando",
    description="Descrição do que seu comando faz",
)
def seu_comando(
    doc_id: str = Field(description="O ID do documento"),
) -> list[base.Message]:
    # Implementação do seu comando
    pass

使用MCP工具进行扩展

创建新的工具在 mcp_server.py:

@mcp.tool(
    name="sua_ferramenta",
    description="O que sua ferramenta faz",
)
def sua_ferramenta(
    param: str = Field(description="Descrição do parâmetro"),
):
    # Implementação da ferramenta
    return "Resultado"

配置

环境变量

变量 必填 默认值 描述
项目 描述 类型 数量
✅ - 您的Anthropic API密钥 CLAUDE_MODEL
✅ - 要使用的Claude模型 USE_UV

| 使用UV执行(1=是,0=否) |

  • claude-3-5-sonnet-20241022 支持的Claude模型
  • claude-3-opus-20240229
  • claude-3-sonnet-20240229
  • claude-3-haiku-20240307

(推荐)

问题解决方案

常见问题

# Solução: Certifique-se de que seu arquivo .env contém uma chave API válida
echo 'ANTHROPIC_API_KEY=sua_chave_aqui' > .env

问题:“ANTHROPIC_API_KEY 不能为空”

# Solução: Reinstale as dependências
pip install -e .

问题:导入错误

# Solução: Use o caminho completo para ativar
.venv\Scripts\activate.bat

问题:命令未找到(Windows)

# Solução: Verifique se o uv está instalado corretamente
pip install uv --upgrade

问题:MCP服务器连接失败

做出贡献

  1. 欢迎贡献!看看您能如何帮忙: 叉
  2. 仓库 Crie 翻译成中文是“哭喊”或“呼喊”。git checkout -b feature/funcionalidade-incrivel一个新的分支(
  3. ) 提交(或“承诺”)git commit -m 'Adiciona funcionalidade incrível'其变化(
  4. ) 推动;按(按钮)git push origin feature/funcionalidade-incrivel对于分支(
  5. ) 阿布拉

一个拉取请求(Pull Request)