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

Speelka Agent MCP

MCP Server

基于Model Context Protocol (MCP)的通用LLM代理工具,支持外部工具集成、灵活配置和可扩展日志管理,适用于多代理编排和复杂任务处理。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
LLM代理GoClaudeClaude

安装说明

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

作者 / 组织

korchasa

提供方

korchasa

最后核验

2026/5/17 20:48

快速接入

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

详细介绍

游戏代理

基于模型上下文协议(MCP)的通用LLM代理,支持外部工具、灵活配置和可扩展日志记录。

主要特点

  • 多代理编排:支持来自其他MCP服务器的工具。
  • 灵活配置:YAML、JSON、环境变量、覆盖和基于属性的覆盖。
  • 可扩展日志记录:集中式LogConfig,输出到stdout、stderr、文件、MCP协议、自定义/json/text格式。
  • 安全:密钥隔离、日志保护、工具访问控制。
  • 测试:黄金系列化测试、基于属性的覆盖、单元/集成/E2E。
  • 可扩展性:HTTP和stdio支持,动态工具/会话管理。

建筑

  • 所有组件均由接口驱动、经过测试,并遵循单一职责。
  • 文档/架构.md 了解详情。

示例配置(YAML)

runtime:
  log:
    defaultLevel: info
    output: ':mcp:'
    format: json
  transports:
    stdio:
      enabled: true
      buffer_size: 1024
    http:
      enabled: false
      host: localhost
      port: 3000
agent:
  name: "speelka-agent"
  version: "v1.0.0"
  tool:
    name: "process"
    description: "Process tool for user queries"
    argument_name: "input"
    argument_description: "User query"
  chat:
    max_tokens: 0
    max_llm_iterations: 25
    request_budget: 0.0
  llm:
    provider: "openai"
    apiKey: "dummy-api-key"
    model: "gpt-4o"
    temperature: 0.7
    promptTemplate: "You are a helpful assistant. {{input}}. Available tools: {{tools}}"
    retry:
      max_retries: 3
      initial_backoff: 1.0
      max_backoff: 30.0
      backoff_multiplier: 2.0
  connections:
    mcpServers:
      time:
        command: "docker"
        args: ["run", "-i", "--rm", "mcp/time"]
        timeout: 10
      filesystem:
        command: "mcp-filesystem-server"
        args: ["/path/to/directory"]
    retry:
      max_retries: 2
      initial_backoff: 1.5
      max_backoff: 10.0
      backoff_multiplier: 2.5

日志记录

  • 通过LogConfig管理:级别、格式、输出(stdout、stderr、文件、MCP)。
  • MCP日志可通过协议或回退到stderr(用于stdio服务器)。
  • 格式:自定义、json、文本、未知。
  • 文档/架构.md文件/实施.md 了解详情。

测试

  • 单元,集成,E2E。
  • 基于属性的覆盖测试(边缘情况、地图合并、零值保存)。
  • 测试示例: 文件/实施.md.

项目结构

  • documents/file_structure.md 了解详情。
  • 关键目录:内部/代理、内部/记录器、内部/mcp_connector、内部/类型。

快速开始

  1. 克隆存储库并构建代理:
   git clone https://github.com/korchasa/speelka-agent-go.git
   cd speelka-agent-go
   go build ./cmd/server
  1. 准备一个配置(见上面的示例)或使用环境变量(SPL\_…)。
  2. 运行代理:

- HTTP模式: ./speelka-agent --daemon [--config config.yaml] - CLI/stdio: ./speelka-agent [--config config.yaml]

文档

______________________________________________________________________

有关叠加、MCP日志、测试和结构详细信息,请参阅documents/文件夹中的文档。

flowchart TB
    User["Any MCP Client"] --> |"1.Request"| Agent["Speelka Agent"]
    Agent --> |"2.Format prompt"| LLM["LLM Service"]
    LLM --> |"3.Tool calls"| Agent
    Agent --> |"4.Execute tools"| Tools["External MCP Tools"]
    Tools --> |"5.Return results"| Agent
    Agent --> |"6.Process repeat"| LLM
    Agent --> |"7.Final answer"| User

用例

  • 通过将大型复杂指令拆分为专门、专注的任务来提高准确性。
  • 通过为不同的任务部件使用不同的型号来降低成本。
  • 扩展、缩小或修改第三方MCP服务器响应。
  • 在“真实”和基于LLM的工具实现之间轻松切换。
  • 通过限制MCP服务器中的可用工具来限制功能。
  • 在单个会话中跨多个MCP工具编排多步骤工作流。
  • 强制执行每个请求的令牌和成本预算,以实现可预测的使用。
  • 临时LLM或MCP服务器错误的自动重试和指数回退。
  • 通过统一配置在LLM服务(OpenAI、Anthropic)之间无缝切换提供者。

主要特点

  • 精确的代理定义:通过即时工程定义代理行为
  • 客户端上下文优化:减小上下文大小以实现有效的令牌使用
  • LLM灵活性:在客户端和代理端使用不同的LLM提供商
  • 集中工具管理:所有工具的单一控制点
  • 多种集成选项:MCP stdio、MCP HTTP、简单HTTP API
  • 结构可靠性:瞬态故障的重试机制
  • 可扩展性:在不更改客户端的情况下扩展系统行为
  • MCP感知日志记录:带MCP通知的结构化日志记录
  • 许可证管理:自动令牌计数
  • 灵活的配置:环境变量、YAML、JSON
  • LLMS服务。发送请求 返回a LLMResponse 结构体:

- 响应文本 - 工具调用列表 - 完成令牌、提示令牌、推理令牌、总令牌(令牌使用)

  • 接口: SendRequest(ctx, messages, tools) (LLMResponse, error)

入门指南

先决条件

  • 上涨1.19或更高
  • API LLM证书(OpenAI或Anthropic)
  • 外部MCP工具(可选)

安装

git clone https://github.com/korchasa/speelka-agent-go.git
cd speelka-agent-go
go build ./cmd/server

配置

可以使用YAML、JSON或环境变量提供配置。

注:./examples 目录已弃用。使用示例 ./site/examples 相反。

示例配置文件位于 site/examples:

  • site/examples/minimal.yaml:基本代理配置(YAML)
  • site/examples/ai-news.yaml:AI新闻代理配置(YAML)
  • site/examples/architect.yaml:架构师代理配置(YAML)

简单的YAML配置示例:

agent:
  name: "simple-speelka-agent"
  version: "1.0.0"
  tool:
    name: "process"
    description: "Process tool for handling user queries with LLM"
    argument_name: "input"
    argument_description: "The user query to process"
  llm:
    provider: "openai"
    apiKey: ""  # Set via environment variable for security
    model: "gpt-4o"
    temperature: 0.7
    promptTemplate: "You are a helpful AI assistant. Respond to the following request: {{input}}. Provide a detailed and helpful response. Available tools: {{tools}}"
  chat:
    max_tokens: 0
    max_llm_iterations: 25
    request_budget: 0.0
  connections:
    mcpServers:
      time:
        command: "docker"
        args: ["run", "-i", "--rm", "mcp/time"]
        includeTools:
          - now
          - utc
      filesystem:
        command: "mcp-filesystem-server"
        args: ["/path/to/directory"]
        excludeTools:
          - delete
runtime:
  log:
    level: "info"
  transports:
    stdio:
      enabled: true

使用环境变量

所有环境变量都以前缀 SPL_:

环境变量默认值说明
代理配置
SPL_AGENT_NAME*必需*代理人姓名
SPL_AGENT_VERSION“1.0.0”代理的版本
工具配置
SPL_AGENT_TOOL_NAME*必需*代理商提供的工具名称
SPL_AGENT_TOOL_DESCRIPTION*必需*工具功能说明
SPL_AGENT_TOOL_ARGUMENT_NAME*必需*工具的参数名称
SPL_AGENT_TOOL_ARGUMENT_DESCRIPTION*必需*工具参数的描述
LLM配置
SPL_AGENT_LLM_PROVIDER*必需*法学硕士服务提供商(例如“openai”、“anthropic”)
SPL_AGENT_LLM_APIKEY*必需*LLM提供程序的API密钥
SPL_AGENT_LLM_MODEL*必需*型号名称(例如“gpt-4o”、“claude-3-opus-20240229”)
SPL_AGENT_LLM_MAX_TOKENS0要生成的最大令牌数(0表示没有限制)
SPL_AGENT_LLM_TEMPERATURE0.7发电随机性温度参数
SPL_AGENT_LLM_PROMPTTEMPLATE*必需*系统提示模板(必须包括与 SPL_AGENT_TOOL_ARGUMENTNAME 价值和 {{tools}})
聊天配置
SPL_AGENT_CHAT_MAX_LLM_ITERATIONS100LLM迭代的最大次数
SPL_AGENT_CHAT_MAX_TOKENS0聊天历史中的最大令牌数(0表示基于模型)
SPL_AGENT_CHAT_REQUEST_BUDGET1.0每次请求的最大成本(美元或等值代币)(0=无限制)
LLM重试配置
SPL_AGENT_LLM_RETRY_MAX_RETRIES3LLM API调用的最大重试次数
SPL_AGENT_LLM_RETRY_INITIAL_BACKOFF1.0初始回退时间(秒)
SPL_AGENT_LLM_RETRY_MAX_BACKOFF30.0最大退避时间(秒)
SPL_AGENT_LLM_RETRY_BACKOFF_MULTIPLIER2.0增加退避时间的倍数
MCP服务器配置
SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ID“”第一台MCP服务器的标识符
SPL_AGENT_CONNECTIONS_MCPSERVERS_0_COMMAND“”要为第一台服务器执行的命令
SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ARGS“”命令参数为空格分隔字符串
SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ENV_*“”服务器的环境变量(前缀为 SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ENV_)
SPL_AGENT_CONNECTIONS_MCPSERVERS_1_ID等等。“”其他服务器的配置(增量索引)
MCP重试配置
SPL_AGENT_CONNECTIONS_RETRY_MAX_RETRIES3MCP服务器连接的最大重试次数
SPL_AGENT_CONNECTIONS_RETRY_INITIAL_BACKOFF1.0初始回退时间(秒)
SPL_AGENT_CONNECTIONS_RETRY_MAX_BACKOFF30.0最大退避时间(秒)
SPL_AGENT_CONNECTIONS_RETRY_BACKOFF_MULTIPLIER2.0增加退避时间的倍数
运行时配置
SPL_RUNTIME_LOG_DEFAULTLEVEL“info”记录默认级别(调试、信息、警告、错误)
SPL_RUNTIME_LOG_OUTPUT“:stderr:”日志输出目标(:stdout:,:stderr:,:mcp:,文件路径)
SPL_RUNTIME_STDIO_ENABLEDtrue启用stdin/stdout传输
SPL_RUNTIME_STDIO_BUFFER_SIZE8192stdio传输的缓冲区大小
SPL_RUNTIME_HTTP_ENABLEDfalse启用HTTP传输
SPL_RUNTIME_HTTP_HOST“localhost”HTTP服务器的主机
SPL_RUNTIME_HTTP_PORT3000HTTP服务器端口

有关更多详细信息,请参阅 环境变量引用.

运行代理

守护程序模式(HTTP服务器)

./speelka-agent --daemon [--config config.yaml]

CLI模式(标准输入/输出)

./speelka-agent [--config config.yaml]

使用示例

HTTP API

在守护进程模式下运行时,代理会公开HTTP端点:

# Send a request to the agent
curl -X POST http://localhost:3000/message -H "Content-Type: application/json" -d '{
  "method": "tools/call",
  "params": {
    "name": "process",
    "arguments": {
      "input": "Your query here"
    }
  }
}'

外部工具集成

使用YAML配置中的MCP协议连接到外部工具:

agent:
  # ... other agent configuration ...
  connections:
    mcpServers:
      # MCP server for Playwright browser automation
      playwright:
        command: "mcp-playwright"
        args: []

      # MCP server for filesystem operations
      filesystem:
        command: "mcp-filesystem-server"
        args: ["."]

或者使用环境变量:

# MCP server for Playwright browser automation
export SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ID="playwright"
export SPL_AGENT_CONNECTIONS_MCPSERVERS_0_COMMAND="mcp-playwright"
export SPL_AGENT_CONNECTIONS_MCPSERVERS_0_ARGS=""

# MCP server for filesystem operations
export SPL_AGENT_CONNECTIONS_MCPSERVERS_1_ID="filesystem"
export SPL_AGENT_CONNECTIONS_MCPSERVERS_1_COMMAND="mcp-filesystem-server"
export SPL_AGENT_CONNECTIONS_MCPSERVERS_1_ARGS="."

支持的LLM提供商

  • 开放人工智能:GPT-3.5、GPT-4、GPT-4o
  • Anthropic:克劳德模型

文档

有关更多详细信息,请参阅:

发展

运行测试

go test ./...

助手命令

run 脚本提供了常见操作的命令:

# Development
./run build        # Build the project
./run test         # Run tests with coverage
./run check        # Run all checks
./run lint         # Run linter

# Interaction
./run call         # Test with simple query
./run call-multistep # Test with multi-step query
./run call-news    # Test news agent
./run fetch_url    # Fetch a URL using MCP

# Inspection
./run inspect      # Run with MCP inspector

命令参考 更多选择。

许可证

MIT许可证

MCP服务器工具筛选

您可以使用以下选项控制从每个MCP服务器导出哪些工具 mcpServers 章节:

  • includeTools:(可选)要包含的工具名称列表。服务器上只有这些工具可用。
  • excludeTools:(可选)要排除的工具名称列表。这些工具将无法从服务器获得。
  • 如果两者都被设置, includeTools 先应用,然后 excludeTools.
  • 工具名称区分大小写。

例子:

connections:
  mcpServers:
    time:
      command: "docker"
      args: ["run", "-i", "--rm", "mcp/time"]
      includeTools:
        - now
        - utc
    filesystem:
      command: "mcp-filesystem-server"
      args: ["/path/to/directory"]
      excludeTools:
        - delete

直接通话模式

您可以在直接调用模式下运行代理来处理单个查询并输出JSON结果。这对于脚本编写、自动化或与其他工具的集成非常有用。

例子:

./bin/speelka-agent --config site/examples/minimal.yaml --call 'What is 2+2?'
  • 代理将处理查询并将单个JSON结果打印到stdout。
  • 所有日志和调试输出都会发送到stderr。
  • 输出JSON将始终包含以下字段: success, result, meta,以及 error.

提示:

  • 您可以在脚本中使用此模式,并将输出传输到 jq 或用于进一步加工的其他工具。

目录标签

目录标签

LLM代理GoClaude本地部署多代理编排外部工具集成灵活配置可扩展日志

支持客户端

Claude

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP