Token导航 LogoToken导航TokenDH.com
My First MCP Client logo
AI代理stdio官方级别未说明来源级核验

My First MCP Client

MCP Server

一个连接MCP服务器并使用Ollama进行LLM驱动的查询处理的智能MCP客户端,支持自动工具调用和多种认证方式。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

PRASADNY

提供方

PRASADNY

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

MCP客户端

一个智能MCP(模型上下文协议)客户端,连接到MCP服务器,使用Ollama进行LLM驱动的查询处理,并自动调用工具。

特性

  • MCP服务器集成:通过stdio连接到MCP服务器(支持Python和JavaScript服务器)
  • LLM驱动查询:使用Olama进行自然语言处理和智能响应
  • 自动工具调用:自动将MCP工具转换为Ollama函数调用格式并执行工具调用
  • 身份验证支持:支持API密钥和承载令牌身份验证
  • 交互式聊天循环:提供用于查询的交互式命令行界面
  • 基于环境的配置:用途 .env 用于安全凭据管理的文件

安装

安装.md 了解详细的安装说明。

快速安装

pip install -e .

或使用 uv:

uv pip install -e .

先决条件

  • Python>=3.13
  • Ollama已安装并正在运行(参见 安装\_ LLAMA.md)
  • 连接到MCP服务器(例如。, my-first-mcp-server)

配置

环境变量

创建一个 .env 客户端目录中的文件,其中包含以下可选变量:

# Option 1: API Key Authentication
MCP_API_KEY=your-api-key-here

# Option 2: Bearer Token Authentication
MCP_TOKEN=your-bearer-token-here
# or
MCP_BEARER_TOKEN=your-bearer-token-here

备注:

  • 如果同时提供API密钥和令牌,则API密钥优先
  • 如果两者都没有提供,客户端将在没有身份验证的情况下连接(要求服务器具有 MCP_AUTH_REQUIRED=false)

配置示例

要匹配默认服务器配置,请执行以下操作:

MCP_API_KEY=default-api-key-12345

用法

基本用法

使用默认服务器路径运行客户端:

python client.py

或者指定自定义服务器路径:

python client.py path/to/server/main.py

程序化使用

import asyncio
from client import MCPClient

async def main():
    # Create client with optional authentication
    client = MCPClient(
        model="llama3.2",  # Ollama model to use
        api_key="your-api-key",  # Optional: API key
        token="your-token"  # Optional: Bearer token
    )
    
    try:
        # Connect to server
        await client.connect_to_server("path/to/server/main.py")
        
        # Check authentication status
        if client.is_authenticated():
            print(f"Authenticated using: {client.get_auth_type()}")
        
        # Process queries
        response = await client.process_query("Check leave balance for E001")
        print(response)
        
        # Or run interactive chat loop
        await client.chat_loop()
        
    finally:
        await client.cleanup()

asyncio.run(main())

运作原理

  1. 连接:客户端通过stdio通信连接到MCP服务器
  2. 工具发现:从服务器获取可用工具
  3. 工具转换:将MCP工具转换为Ollama的OpenAI兼容函数调用格式
  4. 查询处理:

- 使用可用工具向Ollama发送用户查询 - Ollama明智地决定何时调用工具 - 在MCP服务器上执行工具调用 - 将组合结果返回给用户

示例会话

Connecting to MCP server: ..\my-first-mcp-server\main.py
Using API key authentication
Initializing session...
Fetching available tools...
Session initialized successfully
Authentication verified (api_key)

Connected to server with tools: ['get_leave_balance', 'apply_leave', 'get_leave_history']

MCP Client Started!
Type your queries or 'quit' to exit.

Query: Check leave balance for employee E001

E001 has 18 leave days remaining.

Query: Apply for leave on 2025-04-15 for employee E001

Tool 'apply_leave' result: Leave applied for 1 day(s). Remaining balance: 17.

Query: quit

API 参考

MCP客户端类

__init__(model="llama3.2", api_key=None, token=None)

初始化MCP客户端。

  • model:Ollama型号名称(默认:“llama3.2”)
  • api_key:用于身份验证的可选API密钥
  • token:用于身份验证的可选承载令牌

async connect_to_server(server_script_path)

连接到MCP服务器。

  • server_script_path:服务器脚本的路径(.py或.js)

async process_query(query) -> str

使用Ollama和可用工具处理查询。

  • query:用户的查询字符串
  • 返回:已处理的响应

async chat_loop()

运行交互式聊天循环以进行连续查询。

is_authenticated() -> bool

检查是否配置了身份验证凭据。

get_auth_type() -> Optional[str]

获取正在使用的身份验证类型(“api_key”、“bearer”或“None”)。

async cleanup()

清理资源,密切联系。

故障排除

身份验证错误

如果您看到身份验证错误:

  1. 确保您的 .env 文件包含正确的凭据
  2. 验证服务器是否需要相同的凭据(检查服务器的 .env 文件)
  3. 检查服务器是否具有 MCP_AUTH_REQUIRED=true

连接错误

  • 确保服务器路径正确
  • 验证服务器脚本是否存在以及是否可执行
  • 检查是否安装了服务器依赖项

奥拉马·埃罗尔斯

  • 确保Olama正在运行: ollama serve
  • 验证模型是否已安装: ollama list
  • 如果需要,请安装模型: ollama pull llama3.2

另见

目录标签

目录标签

PythonAI代理工作流自动化MCP协议本地部署LLM查询处理自动工具调用命令行交互认证管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP