超参数优化服务器

CARBS MCP Server 是一个通过 Model Context Protocol (MCP) 提供 CARBS 超参数优化功能的服务器,支持多种传输协议和Python集成。

  • by fire
  • Elixir
  • 本地部署
  • 更新于
在 GitHub 查看 fire/carbs-mcp

使用说明

CARBS MCP服务器

一种公开CARBS(成本感知)的模型上下文协议(MCP)stdio服务器 帕累托区域贝叶斯搜索)超参数优化能力。

概述

本项目使用Pythonx将Python CARBS库与Elixir集成, 提供一个独立的MCP服务器,可供MCP兼容客户端使用 超参数优化。

特性

  • MCP协议:使用ex_MCP实现完整的MCP服务器
  • 多个传输:支持stdio(默认)、HTTP和流式HTTP 上海证券交易所
  • Python集成:使用Pythonx嵌入Python并调用CARBS库
  • 状态持久性:通过Ecto使用ETNF规范化模式的SQLite3数据库
  • 混合释放:打包为独立版本以供部署

安装

  1. 确保您已安装Elixir和Python 3.8+
  2. 安装依赖项:
    mix deps.get
    
  3. 设置数据库:
    mix ecto.create
    mix ecto.migrate
    

建立一个释放

MIX_ENV=prod mix release

发布将在 _build/prod/rel/carbs_mcp/.

运行服务器

标准传输(默认)

_build/prod/rel/carbs_mcp/bin/carbs_mcp start

或者对于前景模式:

_build/prod/rel/carbs_mcp/bin/carbs_mcp start_iex

HTTP传输

设置传输类型并启动服务器:

MCP_TRANSPORT=http _build/prod/rel/carbs_mcp/bin/carbs_mcp start

服务器将在端口8080(可配置)上监听HTTP请求。

流式HTTP(SSE)传输

MCP_TRANSPORT=sse _build/prod/rel/carbs_mcp/bin/carbs_mcp start

服务器将在上提供服务器发送的事件 /mcp/stream 终点。

MCP工具

服务器公开了以下工具:

  • carbs_create -创建新的CARBS优化器实例
  • carbs_suggest -获取下一个超参数建议
  • carbs_observe -报告观察结果
  • carbs_load -从数据库加载优化器
  • carbs_save -将优化器保存到数据库
  • carbs_list -列出所有已保存的优化器

配置

Python依赖项配置在 config/config.exs 通过Pythonx pyproject_toml 配置。

数据库配置位于 config/config.exs -默认情况下,在以下位置使用SQLite3 priv/carbs_optimizers.db.

MCP传输可以配置:

  • 违约: :stdio 运输
  • HTTP:设置 config :carbs_mcp, :mcp_transport, :http 并配置端口/主机
  • SSE:设置 config :carbs_mcp, :mcp_transport, :sse 并配置端口/主机
  • 或者使用环境变量: MCP_TRANSPORT=http 或 MCP_TRANSPORT=sse

发展

运行测试:

mix test

预提交钩子

此项目使用预提交挂钩自动格式化代码。看 .m承诺前钩子.md 有关设置说明。

许可证

请参阅许可证文件。