本地MCP客户端构建工具

一个基于LlamaIndex的本地MCP客户端构建工具,支持自然语言交互和多后端LLM集成,适用于本地开发和隐私优先场景。

  • by Jiliar
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 Jiliar/llamaindex-mcp

使用说明

使用LlamaIndex构建您自己的本地MCP客户端

构建一个(系统/项目等)的全面演示 本地MCP(模型上下文协议)客户端 使用LlamaIndex。此项目使您能够连接到本地MCP服务器,并通过强大的工具调用代理,使用自然语言与它们进行交互——所有这些操作都在您的本地机器上完全运行。

🚀 概述

这个项目展示了:

  • 本地MCP客户端 使用LlamaIndex进行实现
  • 工具调用代理 能够与各种MCP服务器进行交互
  • 支持多个大型语言模型(LLM)后端 (兼容OpenAI和Ollama)
  • SQLite 集成 通过MCP协议进行自然语言数据库查询
  • 本地优先架构 确保隐私和离线功能

📋 先决条件

  • Python 3.8及以上版本
  • 紫外线 包管理器(推荐)
  • Ollama(如果使用Ollama后端)
  • 本地LLM设置(如果使用OpenAI兼容的本地服务器)

⚡ 快速入门

1. 安装依赖项

uv sync

2. 启动MCP服务器

启动本地 SQLite MCP 服务器:

uv run server.py --server_type=sse

3. 与代理互动

运行后,在终端中输入您的自然语言查询。代理将智能地使用可用工具来回答您的问题。

🛠️ 项目结构

.
├── client.py              # OpenAI-compatible client
├── ollama_client.py       # Ollama-specific client
├── server.py             # MCP server implementation
├── pyproject.toml        # Project dependencies
└── README.md            # This file

🔧 配置

服务器类型

MCP服务器支持不同的传输协议:

  • sse - 服务器发送事件(推荐)
  • stdio - 标准输入/输出

环境变量

通过环境变量或直接在客户端文件中进行配置,来设置您的大型语言模型(LLM)端点。

💡 示例用法

一旦一切就绪,你可以提出诸如以下问题:

  • “显示数据库中的所有用户”
  • “顾客的平均年龄是多少?”
  • “查找上周下的订单”

代理将通过MCP协议自动使用可用的SQLite工具来执行这些查询,并返回自然语言的响应。

🔍 它的工作原理

  1. MCP服务器通过模型上下文协议暴露工具(如SQLite数据库操作)
  2. MCP 客户端连接到服务器并发现可用工具
  3. LlamaIndex 代理利用工具调用功能来解析自然语言并执行相应的工具
  4. **本地大型语言模型(Local LLM)**使用您的本地语言模型处理查询并生成响应

🐛 故障排除

  • 在启动客户端之前,请确保您的MCP服务器正在运行
  • 验证您的大型语言模型(LLM)端点是否可访问且配置正确
  • 检查所有依赖项是否都已安装 uv sync
  • 对于SQLite问题,请确保数据库文件存在且可访问

🤝 贡献(或参与贡献)

欢迎贡献!请随时提交拉取请求或报告错误和功能需求。

📄 许可证

这个项目是开源的,并且在以下许可下可用 麻省理工学院许可证。


注这个项目旨在用于本地开发和实验,探索MCP协议以及本地大型语言模型(LLM)代理。