Token导航 LogoToken导航TokenDH.com
Simple Enterprise MCP Chat logo
运维云端stdio官方级别未说明来源级核验

Simple Enterprise MCP Chat

MCP Server

一个基于Python的聊天机器人,支持连接Workato企业MCP服务器,实现与多种AI模型的交互及企业工具调用。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
多模型支持PythonClaudeClaude

安装说明

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

作者 / 组织

MattCarpenter-Workato

提供方

MattCarpenter-Workato

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

uv run python chat-openai.py

详细介绍

简单的MCP聊天

一个初学者友好的Python聊天机器人,连接到Workato的Enterprise MCP服务器。这是将MCP(模型上下文协议)与AI模型一起使用的最简单的例子。

多种AI选项可供选择:

  • 开放人工智能 (GPT-4、GPT-4o、GPT-3.5)-基于云,功能强大,易于使用
  • 克劳德 (人择)-高级推理、长篇背景、深思熟虑的回应
  • 奥拉玛 -在本地运行开源LLM(llama3.2、mistral、qwen2.5等)
  • LM 工作室 -运行本地LLM以保护隐私并节省成本

这有什么作用?

这个聊天机器人可以:

  1. 连接 同时连接到多个Workato MCP服务器
  2. 发现 每个服务器都有哪些可用的工具(如CRM数据、电子表格、项目管理等)
  3. 聊天 人工智能会自动使用这些工具来回答你的问题

例如,如果您连接到Salesforce MCP服务器,您可以问:

  • “向我展示我超过5万美元的开放机会”
  • “上周完成了哪些交易?”
  • “查找Acme Corp的联系人”

或者,如果您配置了多个服务器(例如Salesforce+Google Sheets),您可以问:

  • “提取我的管道数据并将其添加到我的预测电子表格中”

AI会自动从正确的服务器调用正确的工具,并给你一个自然语言的响应。

关键概念解释

什么是MCP?

MCP(模型上下文协议) 是AI模型使用外部工具和数据源的标准方式。把它想象成一个通用适配器,让任何人工智能与任何服务进行通信。

什么是Workato企业MCP?

Workato提供连接到各种企业服务(如CRM、数据库、生产力工具)的托管MCP服务器。你得到:

  • 安全:OAuth 2.0和加密凭据
  • 合规:企业条例的审计记录
  • 可靠性:速率限制和自动重试

什么是函数调用?

当你问人工智能一个问题时,它会决定是否需要外部数据。如果是这样,它:

  1. 告诉我们调用哪种工具
  2. 我们调用MCP服务器上的工具
  3. 我们将结果发送回AI
  4. AI给你一个人类可读的答案

项目结构

simple-mcp-chat/
├── chat-openai.py             # OpenAI implementation (heavily commented!)
├── chat-claude.py             # Claude (Anthropic) implementation
├── chat-ollama.py             # Ollama version for local open-source LLMs
├── chat-lmstudio.py           # LM Studio version for local LLMs
├── oauth_handler.py           # OAuth 2.0 authentication handler with PKCE
├── troubleshoot_openai.py     # OpenAI connection troubleshooter
├── mcp_servers.json           # Your MCP server configs (don't commit this!)
├── mcp_servers.example.json   # Example server configuration
├── .mcp_tokens.json           # OAuth tokens storage (auto-generated, don't commit!)
├── pyproject.toml             # Python dependencies
├── uv.lock                    # Locked dependency versions
├── .env                       # Your API keys (don't commit this!)
├── env.example                # Example environment configuration
├── .gitignore                 # Git ignore rules
└── README.md                  # You're reading it

先决条件

在开始之前,您需要:

  1. Python 3.10+ 已安装在您的计算机上
  2. 紫外线 包管理器(安装说明)
  3. AI提供商 由您选择:

- OpenAI API密钥platform.openai.com (聊天openai.py) - API密钥console.anthropic.com (用于聊天claude.py) - 奥拉玛 安装自 奥拉玛 (用于聊天olama.py) - LM 工作室 安装自 lmstudio.ai (适用于聊天lmstudio.py)

  1. Workato MCP URL 从您的Workato工作区

安装说明

第一步:克隆或下载

git clone YOUR_REPO_URL
cd simple-mcp-chat

步骤2:创建配置文件

复制示例文件:

cp env.example .env
cp mcp_servers.example.json mcp_servers.json

编辑 .env 使用API密钥:

# OpenAI Configuration (for chat-openai.py)
OPENAI_API_KEY=sk-proj-...your-key-here...
MODEL=gpt-4o-mini

# Claude Configuration (for chat-claude.py)
CLAUDE_API_KEY=sk-ant-...your-key-here...
CLAUDE_MODEL=claude-sonnet-4-5-20250929

# Ollama Configuration (for chat-ollama.py)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2

# LM Studio Configuration (for chat-lmstudio.py)
LMSTUDIO_BASE_URL=http://localhost:1234/v1
LMSTUDIO_MODEL=local-model

编辑 mcp_servers.json 配置您的MCP服务器。您可以使用基于令牌的身份验证或OAuth身份验证。

基于令牌的身份验证(简单):

{
  "servers": [
    {
      "name": "salesforce",
      "url": "https://apim.workato.com/your-workspace/salesforce-mcp?token=YOUR_TOKEN",
      "enabled": true,
      "auth_type": "token"
    },
    {
      "name": "jira",
      "url": "https://apim.workato.com/your-workspace/jira-mcp?token=YOUR_TOKEN",
      "enabled": true,
      "auth_type": "token"
    }
  ]
}

OAuth 2.0身份验证(基于浏览器) 对于需要OAuth的服务器:

{
  "servers": [
    {
      "name": "sheets",
      "url": "https://2107.apim.mcp.workato.com/",
      "enabled": true,
      "auth_type": "oauth"
    }
  ]
}

就是这样!刚刚设置 "auth_type": "oauth" 其他一切都是自动的。当你运行聊天机器人时,它将:

  1. 自动发现OAuth端点 通过 .well-known/oauth-authorization-server
  2. 自动注册为OAuth客户端 使用动态客户端注册(RFC 7591)
  3. 检查您是否有已存储的有效OAuth令牌
  4. 如果不是, 打开浏览器 用于身份验证
  5. 在端口8080上启动本地服务器以接收OAuth回调
  6. 使用以下方式交换访问令牌的授权码 PKCE (代码交换的证明密钥,RFC 7636)用于安全
  7. 将令牌安全地存储在 .mcp_tokens.json (Git除外)
  8. 使用 承载令牌身份验证 在授权标头中(标准OAuth实践)
  9. 令牌过期时自动刷新令牌

安全功能:

  • PKCE(RFC 7636):防止授权码拦截攻击
  • 动态客户端注册(RFC 7591):不需要手动设置OAuth客户端
  • 自动OAuth发现:从以下位置发现终结点 .well-known/oauth-authorization-server
  • 令牌存储:安全地将令牌与客户端凭据分开存储
  • 承载令牌身份验证:使用标准 Authorization: Bearer 标头

可选OAuth配置

所有OAuth参数都是可选的,如果没有提供,将自动发现/自动配置。如果需要,您可以覆盖默认值:

{
  "name": "sheets",
  "url": "https://2107.apim.mcp.workato.com/",
  "enabled": true,
  "auth_type": "oauth",
  "oauth": {
    "client_id": "custom_client_id",
    "client_secret": "custom_client_secret",
    "scopes": ["mcp.read", "mcp.write"],
    "redirect_port": 8080,
    "auth_url": "https://id.workato.com/oauth/authorize",
    "token_url": "https://id.workato.com/oauth/token"
  }
}

每个服务器的配置选项:

选项描述
name短标识符(用于在工具名称前加前缀)
url完整的Workato MCP端点URL
enabled设置为 false 临时禁用服务器
auth_type要么 "token" (默认)或 "oauth"

OAuth选项(全部可选):

选项描述
client_idOAuth客户端ID-如果没有提供,将通过RFC 7591自动注册
client_secretOAuth客户端密钥-如果没有提供,将通过RFC 7591自动注册
scopes要请求的OAuth作用域数组-如果未提供,则使用服务器默认值
redirect_portOAuth回调的本地端口-默认为8080
auth_url自定义授权终结点-如果未提供,则自动发现
token_url自定义令牌终结点-如果未提供,则自动发现

OAuth自动发现和自动注册流程:

  1. 端点发现:胎儿 .well-known/oauth-authorization-server 从服务器URL发现授权端点、令牌端点、注册端点和支持的授权类型/范围。
  1. 动态客户端注册:如果没有 client_id 提供,自动注册为OAuth客户端,生成客户端名称(simple-mcp-chat-{server_name}),设置重定向URI(http://localhost:{redirect_port}/callback),并将客户端凭据存储在 .mcp_tokens.json.
  1. PKCE流程:通过生成随机代码验证器、创建SHA256代码挑战、发送带有授权请求的挑战以及发送带有令牌请求的验证器,使用验证密钥进行代码交换以确保安全。
  1. 许可证管理:将访问令牌和刷新令牌存储在 .mcp_tokens.json,跟踪令牌过期时间,在需要时自动刷新令牌,并将客户端凭据与访问令牌分离以确保安全。

步骤3:安装依赖项

uv sync

这将安装:

  • openai -用于与GPT对话(聊天openai.py使用)
  • anthropic -用于与克劳德交谈(由chat Claude.py使用)
  • python-dotenv -用于加载.env文件
  • requests -用于对MCP服务器进行HTTP调用和OAuth身份验证

步骤4:运行聊天

选择您的AI提供商:

选项A:OpenAI(云)

uv run python chat-openai.py

系统提示:

# Using command line argument
uv run python chat-openai.py --system-prompt "You are a helpful medical assistant."

# Or use the short form
uv run python chat-openai.py -s "You are a concise assistant that answers in bullet points."

# View all options
uv run python chat-openai.py --help

选项B:克劳德(云)

uv run python chat-claude.py

系统提示:

# Using command line argument
uv run python chat-claude.py --system-prompt "You are a helpful medical assistant."

# Or use the short form
uv run python chat-claude.py -s "You are a concise assistant that answers in bullet points."

# View all options
uv run python chat-claude.py --help

您应该看到:

MCP Chat - Discovering tools...
  - salesforce: 5 tools
  - jira: 3 tools

Connected to 2 server(s) with 8 total tools
Type 'quit' or 'exit' to end
----------------------------------------

You:

如果你有启用了OAuth的服务器,第一次运行将包括OAuth身份验证:

MCP Chat - Discovering tools...
  Discovered auth endpoint: https://id.workato.com/oauth/authorize
  Discovered token endpoint: https://id.workato.com/oauth/token
  Registering OAuth client for sheets...
  [OK] Client registered successfully

  Opening browser for OAuth authentication...
  Waiting for authorization...

  [SUCCESS] Authorization code received
  [SUCCESS] Access token obtained
  [SUCCESS] Token stored for future use

  - salesforce: 5 tools
  - sheets: 1 tools

Connected to 2 server(s) with 6 total tools
Type 'quit' or 'exit' to end
----------------------------------------

You:

后续运行将使用存储的令牌:

MCP Chat - Discovering tools...
Using stored token for sheets
  - salesforce: 5 tools
  - sheets: 1 tools

Connected to 2 server(s) with 6 total tools

克劳德的具体特点:

克劳德提供了一些独特的优势:

  • 长上下文:处理更大的对话和更多的工具结果
  • 高级推理:擅长复杂的多步骤查询
  • 深思熟虑的回应:更详细的解释和分析
  • 最新款式:访问克劳德十四行诗4.5、Opus 4.5和上一代型号

克劳德模型:

  • claude-sonnet-4-5-20250929 -最新Claude Sonnet 4.5,性能和成本的最佳平衡(推荐)
  • claude-opus-4-5-20251101 -最强大的Claude模型,最适合复杂任务
  • claude-3-5-sonnet-20241022 -上一代Sonnet,仍然非常有能力
  • claude-3-opus-20240229 -上一代Opus
  • claude-3-haiku-20240307 -最快、最经济

选项C:Ollama(当地)

通过Ollama使用本地开源LLM运行:

  1. 安装Ollama奥拉玛
  1. 确认Ollama正在运行:
# Check if Ollama is running
curl http://localhost:11434/api/tags

# Should return JSON with list of installed models
  1. 运行Ollama聊天:

如果模型尚未安装,聊天脚本将自动拉取模型,因此您可以跳过手册 ollama pull 一步!

uv run python chat-ollama.py

系统提示:

# Using command line argument
uv run python chat-ollama.py --system-prompt "You are a helpful medical assistant."

# Or use the short form
uv run python chat-ollama.py -s "You are a concise assistant that answers in bullet points."

# View all options
uv run python chat-ollama.py --help

您应该看到:

Ollama MCP Chat
----------------------------------------
Checking if model 'llama3.2' exists... ✓
Loading model 'llama3.2' into memory... ✓
Discovering tools...
  - salesforce: 5 tools
  - jira: 3 tools

Connected to 2 server(s) with 8 total tools
Using model: llama3.2
Type 'quit' or 'exit' to end
----------------------------------------

You:

如果模型尚未安装,它将被自动拉取:

Ollama MCP Chat
----------------------------------------
Checking if model 'llama3.2' exists... not found
Pulling model 'llama3.2' from Ollama registry...
  pulling manifest
  pulling [layer details with progress]
  verifying sha256 digest
  writing manifest
  removing any unused layers
Successfully pulled model 'llama3.2' ✓
Loading model 'llama3.2' into memory... ✓
Discovering tools...

Olama的具体特点:

  • 100%本地:所有处理都发生在您的机器上,没有云API调用
  • 注重隐私:你的数据永远不会离开你的电脑
  • 无API成本:免费使用,无使用限制
  • 开源模型:访问llama3、mistral、qwen等
  • 自动模型管理:如果未安装,模型将自动拉取
  • 可定制的:为您的特定用例微调模型

Ollama配置 (可选,in .env):

# Change the Ollama server URL if needed (default: http://localhost:11434)
OLLAMA_BASE_URL=http://localhost:11434

# Change the model to use (must be pulled first)
OLLAMA_MODEL=llama3.2

# Other good options:
# OLLAMA_MODEL=mistral
# OLLAMA_MODEL=qwen2.5
# OLLAMA_MODEL=llama3.1

MCP工具调用的推荐模型:

型号尺寸函数调用最适合
llama3.23B通用,快速响应
mistral7B性能均衡
qwen2.57B多语言,编码
llama3.18B高级推理

注: 并非所有Ollama型号都支持函数调用。对于MCP工具集成,您必须使用支持函数调用的模型(如上所列)。检查型号卡 ollama.ai/图书馆 用于函数调用支持。

手动模型安装 (可选):

如果您希望在运行聊天脚本之前手动安装模型:

# Recommended models with function calling support
ollama pull llama3.2        # Meta's Llama 3.2 (recommended)
ollama pull mistral         # Mistral AI's model
ollama pull qwen2.5         # Alibaba's Qwen 2.5
ollama pull llama3.1        # Meta's Llama 3.1

# List installed models
ollama list

选项D:LM工作室(本地)

通过LM Studio使用本地LLM运行:

  1. 安装并启动LM Studiolmstudio.ai
  2. 加载模型 支持函数调用(查找支持“函数调用”或“工具使用”的模型)
  3. 启动本地服务器 在LM Studio中(默认值: http://localhost:1234)
  4. 运行LM Studio聊天:
uv run python chat-lmstudio.py

您应该看到:

LM Studio MCP Chat - Discovering tools...
  - salesforce: 5 tools
  - jira: 3 tools

Connected to LM Studio at http://localhost:1234/v1
Connected to 2 MCP server(s) with 8 total tools

Note: Make sure you have a model loaded in LM Studio!
For best results, use a model that supports function calling.
Type 'quit' or 'exit' to end
----------------------------------------

You:

LM工作室配置 (可选,in .env):

# Change the LM Studio server URL if needed
LMSTUDIO_BASE_URL=http://localhost:1234/v1

# Model name (usually ignored by LM Studio)
LMSTUDIO_MODEL=local-model

# Optional: Set a default system prompt to guide LLM behavior
SYSTEM_PROMPT=You are a helpful assistant.

使用系统提示:

您可以通过环境变量或命令行提供系统提示来自定义LLM的行为:

# Using environment variable (set in .env)
uv run python chat-lmstudio.py

# Using command line argument
uv run python chat-lmstudio.py --system-prompt "You are a helpful medical assistant."

# Or use the short form
uv run python chat-lmstudio.py -s "You are a concise assistant that answers in bullet points."

# View all options
uv run python chat-lmstudio.py --help

系统提示可用于:

  • 设定回应的基调和风格
  • 专门为特定领域(医疗、法律、技术等)提供助理服务
  • 强制执行响应格式(要点、简短回答、详细解释)
  • 添加自定义指令或约束

工具名称会自动以服务器名称作为前缀(例如。, salesforce__Query_Records)以避免服务器之间的冲突。

当前注射日期/时间

聊天机器人会自动将当前日期和时间注入到每条用户消息中,以确保LLM始终知道基于时间的查询的当前日期。这对于CGM数据分析等应用程序尤为重要,因为“过去3天”或“本周”需要从今天的日期开始计算。

配置:

# Automatically inject current date/time (recommended)
INJECT_CURRENT_DATE=true

它是如何工作的:

每条用户消息都会自动添加当前日期和时间:

[Current date and time: 2026-01-12 16:30:45 (formatted for API: 2026-01-12T16:30:45)]

What were my glucose levels in the last 3 days?

这确保了LLM:

  • 知道确切的当前日期(不依赖于其知识截止日期)
  • 可以准确计算相对日期(“最近3天”、“本周”等)
  • 为API调用使用正确的日期格式(YYYY-MM-DDTHH:MM:SS)

何时禁用:

INJECT_CURRENT_DATE=false 如果:

  • 你正在用历史对话进行测试
  • 当前日期与您的用例无关
  • 您想在提示中手动指定日期

日志记录和调试

OpenAI和LM Studio版本都包含全面的日志记录,以帮助您调试问题并了解幕后发生的事情。

启用详细日志记录

聊天机器人支持对控制台和文件进行灵活的日志记录。将这些添加到您的 .env 文件:

# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_LEVEL=DEBUG

# Log to file (optional)
LOG_FILE=logs/chat.log

# Show logs in terminal (true/false)
LOG_TO_CONSOLE=true

配置选项:

变量描述示例
LOG_LEVEL日志详细级别DEBUG, INFO, WARNING
LOG_FILE日志文件路径(留空禁用)logs/chat.log
LOG_TO_CONSOLE在终端中显示日志truefalse

常见配置:

  1. 仅调试到文件(干净终端):
   LOG_LEVEL=DEBUG
   LOG_FILE=logs/chat.log
   LOG_TO_CONSOLE=false
  1. 调试到文件和终端:
   LOG_LEVEL=DEBUG
   LOG_FILE=logs/chat.log
   LOG_TO_CONSOLE=true
  1. 仅控制台(无文件):
   LOG_LEVEL=DEBUG
   LOG_FILE=
   LOG_TO_CONSOLE=true

日志级别说明:

  • 调试:显示所有通信详细信息,包括:

- 完成MCP JSON-RPC请求和响应 - 完整的OpenAI/Claude/LM Studio API请求和响应 - 工具发现过程 - 工具执行细节 - 令牌使用统计

  • 信息:显示高级操作:

- 工具调用以及正在调用哪些工具 - 服务器连接状态 - OAuth身份验证流程

  • 警告:仅显示警告和错误
  • 错误/严重:仅显示错误

调试输出示例

LOG_LEVEL=DEBUG,您将看到详细的日志,如:

2026-01-12 10:30:45 - __main__ - DEBUG - ================================================================================
2026-01-12 10:30:45 - __main__ - DEBUG - MCP REQUEST
2026-01-12 10:30:45 - __main__ - DEBUG - URL: https://apim.workato.com/your-workspace/dexcom-mcp
2026-01-12 10:30:45 - __main__ - DEBUG - Method: tools/call
2026-01-12 10:30:45 - __main__ - DEBUG - Headers: {
  "Authorization": "Bearer ***"
}
2026-01-12 10:30:45 - __main__ - DEBUG - Payload: {
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "Get_Glucose_Values_v1",
    "arguments": {
      "start_date_time": "2026-01-01T00:00:00",
      "end_date_time": "2026-01-07T23:59:59"
    }
  }
}
2026-01-12 10:30:46 - __main__ - DEBUG - MCP RESPONSE
2026-01-12 10:30:46 - __main__ - DEBUG - Status Code: 200
2026-01-12 10:30:46 - __main__ - DEBUG - Response: {
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Found 1,234 glucose readings..."
      }
    ]
  }
}
2026-01-12 10:30:46 - __main__ - DEBUG - ================================================================================
2026-01-12 10:30:46 - __main__ - DEBUG - ================================================================================
2026-01-12 10:30:46 - __main__ - DEBUG - OPENAI REQUEST
2026-01-12 10:30:46 - __main__ - DEBUG - Model: gpt-4o-mini
2026-01-12 10:30:46 - __main__ - DEBUG - Messages: [
  {
    "role": "user",
    "content": "What was my average glucose last week?"
  },
  {
    "role": "tool",
    "tool_call_id": "call_abc123",
    "content": "Found 1,234 glucose readings..."
  }
]
2026-01-12 10:30:47 - __main__ - DEBUG - OPENAI RESPONSE
2026-01-12 10:30:47 - __main__ - DEBUG - Finish Reason: stop
2026-01-12 10:30:47 - __main__ - DEBUG - Content: Your average glucose last week was 125 mg/dL...
2026-01-12 10:30:47 - __main__ - DEBUG - Usage: prompt_tokens=523, completion_tokens=87, total_tokens=610
2026-01-12 10:30:47 - __main__ - DEBUG - ================================================================================

记录的内容

MCP服务器通信:

  • 请求URL和方法
  • 请求有效载荷(JSON-RPC 2.0格式)
  • 授权标头(出于安全考虑而屏蔽)
  • 响应状态代码
  • 完整的响应数据

人工智能模型通信(OpenAI/Claude/LM Studio):

  • 正在使用的模型
  • 发送到LLM的完整消息历史记录
  • 可用工具及其名称
  • LLM的响应内容
  • LLM请求的工具调用
  • 令牌使用情况:

- OpenAI/LM Studio:提示标记、完成标记、总计标记 - 克劳德:输入标记,输出标记

工具操作:

  • 从每台服务器发现工具
  • 工具名称和说明
  • 使用参数执行工具
  • 工具结果(如果很长,则截断)

日志文件

LOG_FILE 设置后,日志将保存到指定文件:

  • logs/ 如果目录不存在,则会自动创建
  • 日志会附加到文件中(不会被覆盖)
  • logs/ 目录已从Git中排除(已在 .gitignore)
  • 您可以使用任何路径: logs/chat.log, logs/debug-2026-01-12.log等等。

查看日志文件:

# View entire log file
cat logs/chat.log

# Follow log in real-time (like tail -f)
tail -f logs/chat.log

# View last 50 lines
tail -n 50 logs/chat.log

# Search logs for errors
grep "ERROR" logs/chat.log

令牌使用跟踪

聊天机器人可以维护一个单独的日志文件,专门用于跟踪所有API调用的令牌使用情况。这对于以下方面来说是无价的:

  • 监控API成本
  • 优化提示和系统消息
  • 识别昂贵的查询
  • 随时间跟踪使用情况

配置:

# Enable token usage logging
TOKEN_LOG_FILE=logs/tokens.log

令牌日志格式:

每个API调用都会记录以下信息:

2026-01-12 16:45:30 - MODEL=gpt-4o-mini | PROMPT=523 | COMPLETION=87 | TOTAL=610 | TYPE=initial_request | USER_PROMPT=What were my glucose levels in the last 3 days? | SERVERS=dexcom | TOOLS=dexcom__Get_Data_Range_VUA_, dexcom__Get_Glucose_Values_VUA_ | RESPONSE=[Tool calls only]
2026-01-12 16:45:35 - MODEL=gpt-4o-mini | PROMPT=1250 | COMPLETION=45 | TOTAL=1295 | TYPE=tool_followup | USER_PROMPT=What were my glucose levels in the last 3 days? | SERVERS=none | TOOLS=none | RESPONSE=Based on the data from the last 3 days, your average glucose was 145 mg/dL with 68% time in range (70-180 mg/dL). You had 12 low readings below 70 mg/dL and 45 high readings...

日志字段:

  • 模型:所使用的模型(例如。, gpt-4o-mini, claude-3-5-sonnet-20241022, local-model)
  • 提示输入:提示/输入令牌的数量(取决于提供者)
  • 完成输出:完成/输出令牌的数量(取决于提供商)
  • 总计:使用的令牌总数
  • 类型:请求类型(initial_requesttool_followup)
  • USER_PROMPT:用户的问题/提示(截断为100个字符)
  • 服务器:使用的MCP服务器的逗号分隔列表(例如。, dexcom, salesforce)或“无”
  • 工具:以逗号分隔的已调用工具列表,或“无”
  • 响应:助理的回复(截断为200个字符)

注: 令牌字段名称因提供商而异:

  • OpenAI/LM工作室: PROMPT, COMPLETION, TOTAL
  • 克劳德: INPUT, OUTPUT, TOTAL

分析令牌使用情况:

# View all token usage
cat logs/tokens.log

# Calculate total tokens used
awk -F'TOTAL=' '{sum+=$2} END {print "Total tokens:", sum}' logs/tokens.log | awk '{print $1, $2, $3}'

# Find most expensive queries
sort -t'=' -k5 -nr logs/tokens.log | head -10

# Count API calls per day
grep "2026-01-12" logs/tokens.log | wc -l

成本计算示例:

为了进行定价比较(示例费率):

  • OpenAI:

- GPT-4o-mini:约0.15美元/百万输入代币,约0.60美元/百万输出代币 - GPT-4o:~2.50/100万输入代币,~10.00万输出代币

  • 克劳德:

- 克劳德3.5十四行诗:约3.00/1M输入代币,约15.0/1M输出代币 - 克劳德3作品:约15.00/1M输入代币,约75.00/1M输出代币 - Claude 3 Haiku:约0.25美元/百万输入代币,约1.25美元/百万输出代币

  • LM工作室: 免费(本地运行)

使用令牌日志估算成本并优化使用。

安全说明

日志中的授权令牌会自动屏蔽以显示 Bearer *** 而不是实际的令牌值。即使启用了DEBUG日志记录,API密钥也保持安全。

如何使用

只需输入自然语言问题!人工智能将找出要使用的工具。

对话示例

You: What open deals do I have over $100k?

[Calling salesforce__Query_Opportunities...]

A: You have 3 open opportunities over $100k:
   1. Acme Corp - Enterprise License ($150,000) - Closing Jan 30
   2. GlobalTech - Platform Deal ($125,000) - Closing Feb 15
   3. Initech - Annual Contract ($110,000) - Closing Feb 28

You: Create a Jira ticket to follow up on the Acme deal

[Calling jira__Create_Issue...]

A: Created SALES-142: "Follow up on Acme Corp Enterprise License opportunity"

示例提示

以下是您可以使用不同MCP工具尝试的一些提示:

客户关系管理(Salesforce、HubSpot)

  • “显示本月关闭的所有机会”
  • “查找医疗保健行业公司的联系人”
  • “我的管道总价值是多少?”
  • “列出我30天内未联系过的帐户”
  • “在Acme Corp为John Smith创建新的潜在客户”

项目管理(Jira、Asana)

  • “分配给我的票是什么?”
  • “显示所有高优先级错误”
  • “创建一个任务来审查Q1路线图”
  • “项目123的状态如何?”
  • “列出本周更新的所有问题”

生产力(谷歌表格、日历)

  • “在我的销售跟踪电子表格中添加一行”
  • “我明天有什么会议?”
  • “查找名称中包含“预算”的所有电子表格”
  • “更新单元格B5以显示新的预测”

沟通(Slack、电子邮件)

  • “向#销售团队发送有关新定价的消息”
  • “搜索我们法律团队的电子邮件”
  • “我有哪些未读消息?”

多工具查询

AI可以自动链接多个工具调用:

  • “找到我最大的交易,并创建Jira票来准备提案”
  • “获取我明天的日历,并将Slack摘要发送给我的团队”
  • “提取第四季度销售数据并更新预测电子表格”

故障排除

OpenAI连接故障排除程序

如果您在连接到OpenAI时遇到问题,请运行内置的故障排除程序:

uv run python troubleshoot_openai.py

此脚本诊断常见问题,包括:

  • 与OpenAI服务器的网络连接
  • DNS解析
  • 防火墙/代理阻止
  • SSL/TLS问题
  • API密钥验证
  • 模型访问

要获得更详细的输出,请使用verbose标志:

uv run python troubleshoot_openai.py --verbose

“未配置MCP服务器”

确保你有一个 mcp_servers.json 配置了至少一个服务器的文件。

“未发现任何工具”

检查您的服务器URL是否在 mcp_servers.json 正确,并包含身份验证令牌(用于基于令牌的身份验证)或OAuth身份验证成功(用于OAuth身份验证)。

“调用工具时出错”或“401未经授权”

  • 对于 基于令牌的身份验证:您的令牌可能已过期。检查您的Workato工作区以获取新令牌。
  • 对于 OAuth身份验证:您存储的令牌可能已过期。删除 .mcp_tokens.json 并重新启动应用程序以重新进行身份验证。

“API密钥无效”

确保你的 OPENAI_API_KEY 在以下方面是正确的 .env 文件。

一台服务器发生故障,但其他服务器正常工作

聊天机器人将继续使用成功的服务器。检查故障服务器的错误消息,并验证其URL/令牌。

OAuth:“OAuth身份验证失败”

常见原因:

  • 端口8080已在使用中:更改 redirect_port 在OAuth配置中
  • 浏览器未打开:手动将URL从终端复制到浏览器中
  • OAuth服务器不支持动态注册:在Workato中手动创建OAuth客户端并提供 client_idclient_secret 在配置中

OAuth:“需要代码挑战”

这不应该发生-PKCE是自动启用的。如果你看到这个,请将其报告为错误。

OAuth:令牌已存储,但仍出现401个错误

OAuth实现使用承载令牌身份验证。如果你仍然收到401错误:

  1. 删除 .mcp_tokens.json
  2. 重新启动应用程序
  3. 在浏览器中重新进行身份验证
  4. 新令牌将使用承载身份验证

LM Studio:“无法连接到LM Studio”

确保LM Studio正在运行,并且本地服务器已启动。检查URL是否匹配(默认值: http://localhost:1234/v1).

LM Studio:未调用工具

并非所有型号都支持函数调用。尝试一个明确支持工具使用的模型,例如:

  • Mistral指令模型
  • 支持函数调用的Llama模型
  • 带工具支持的Qwen模型

Ollama:“无法连接到Ollama”

确保Ollama已安装并正在运行。检查服务:

# Check if Ollama is running
curl http://localhost:11434/api/tags

# Or check the version
ollama --version

如果Ollama没有跑步,就开始吧:

  • macOS/Linux:Ollama安装后自动启动,或运行 ollama serve
  • 视窗:从“开始”菜单或系统托盘启动Olama

Ollama:“找不到模型”或拉取失败

聊天脚本会自动提取未安装的模型。如果自动拉动失败:

# Manually pull the model specified in your .env
ollama pull llama3.2

# Verify it's installed
ollama list

拉拔失败的常见原因:

  • 无网络连接
  • 磁盘空间不足
  • Ollama服务运行不正常
  • 型号名称输入错误 .env 文件

Ollama:工具未被调用或响应不正确

并非所有Ollama型号都支持函数调用。使用具有经过验证的工具支持的型号:

  • 骆驼3.2 (建议一般使用)
  • 密史脱拉风 (良好的性能平衡)
  • qwen2.5 (多语言,编码)
  • 骆驼3.1 (高级推理)

较小的型号,如 llama3.2:1b 速度很快,但在复杂的工具调用中可能不太准确。为了获得最佳效果,请使用默认的3B或更大的模型。

奥利玛:反应迟钝

尝试更小/更快的型号:

# Very fast, lightweight (good for testing)
ollama pull llama3.2:1b

# Or use GGUF quantized models for better performance
ollama pull llama3.2:3b-q4_0

您还可以调整 OLLAMA_MODEL 设置在你的 .env 文件。

许可证

麻省理工学院

目录标签

目录标签

多模型支持PythonClaude企业聊天机器人本地部署AI工具集成Python开发企业自动化

支持客户端

Claude

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP