Token导航 LogoToken导航TokenDH.com
Open Smelt logo
开发工具未说明官方级别未说明来源级核验

Open Smelt

MCP Server

OpenSmelt是一个MCP网关,聚合多个后端MCP服务器为单一端点,提供100多种工具访问,适用于开发工具集成和自动化场景。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
JavaScriptClaude开发工具集成ClaudeCursor

安装说明

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

作者 / 组织

agentmcmillan

提供方

agentmcmillan

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

OpenSmelt

一个MCP网关,将多个后端MCP服务器聚合到一个端点中。连接一次,获取所有工具。

任何兼容MCP的客户端(Claude Code、Codex CLI、Gemini CLI、Cursor)都可以连接到一个URL,并通过命名空间后端访问100多种工具。

建筑

MCP Client (Claude Code, Codex CLI, etc.)
    |
    v
MCP Gateway :9000  ──  FastMCP create_proxy() aggregates all backends
    |
    ├── memento      Shared semantic memory (Node.js + pgvector)     [core]
    ├── tools        Fleet status, Signal messaging, shared config   [core]
    ├── docker       Docker management (supergateway wrapper)        [core]
    ├── rss          RSS feed reader (supergateway wrapper)          [core]
    ├── github       GitHub API tools (supergateway wrapper)         [profile: github]
    ├── ollama       Local LLM via Ollama (supergateway wrapper)     [profile: ollama]
    ├── ssh          SSH to fleet devices (supergateway wrapper)     [profile: ssh]
    ├── signal       Signal messaging (supergateway wrapper)         [profile: signal]
    └── cloudflare   Cloudflare API (supergateway wrapper)           [profile: cloudflare]

工具由后端命名(例如。, memento_remember, github_search_repositories, docker_list_containers).

先决条件

  • Docker 20.10+ 使用Docker Compose v2
  • 4GB内存 最低(如果运行Olama,建议使用8GB)
  • 10 GB磁盘 用于Docker镜像和数据量
  • A. GitHub个人访问令牌 如果你想要GitHub后端(创建一个)

快速开始

选项A:交互式设置(推荐)

git clone https://github.com/agentmcmillan/OpenSmelt.git
cd OpenSmelt
./setup.sh                    # generates .env, picks backends
docker compose up -d          # start services
./scripts/test-gateway.sh     # verify everything works

选项B:手动设置

git clone https://github.com/agentmcmillan/OpenSmelt.git
cd OpenSmelt

# Create .env from template
cp .env.example .env

# Generate secrets (paste into .env)
echo "MEMENTO_ACCESS_KEY=$(openssl rand -hex 32)"
echo "POSTGRES_PASSWORD=$(openssl rand -hex 32)"

# Edit .env:
#   - Set COMPOSE_PROFILES to enable backends (e.g., github,ollama,ssh)
#   - Fill in credentials for each enabled profile
#   - See .env.example for all options

# Start
docker compose up -d

# Verify
curl http://localhost:9000/health

选择后端

后端由Docker Compose控制 个人资料 通过 COMPOSE_PROFILES.env:

配置文件它支持什么需要
githubGitHub API工具GITHUB_PERSONAL_ACCESS_TOKEN
ollama本地LLM工具Ollama在主机上运行
sshSSH到舰队设备SSH密钥 ssh-keys/
signal信号消息信号REST API+ AI_SIGNALS_PATH
cloudflareCloudflare APICLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID

无论配置文件如何,核心服务(memento、工具、docker、rss)始终会启动。

# Examples:
COMPOSE_PROFILES=github                     # core + GitHub only
COMPOSE_PROFILES=github,ollama,ssh          # core + GitHub + Ollama + SSH
COMPOSE_PROFILES=github,ollama,ssh,signal   # everything except Cloudflare

远程部署

要通过SSH部署到远程服务器:

DEPLOY_HOST=your-server-ip DEPLOY_USER=your-username ./deploy.sh

客户端配置

网关运行后,配置MCP客户端进行连接。

局域网接入

添加到您的MCP客户端配置中(例如。, ~/.claude.json, .mcp.json):

{
  "mcpServers": {
    "opensmelt": {
      "type": "http",
      "url": "http://YOUR_SERVER_IP:9000/mcp"
    }
  }
}

替换 YOUR_SERVER_IP 使用运行OpenSmelt的机器的IP或主机名。如果在本地运行,请使用 localhost.

通过Cloudflare进行远程访问

client-configs/gateway-remote.json 对于带有Cloudflare Access标头的模板。

环境变量

复制 .env.example.env 并填写数值。这 setup.sh 脚本自动执行此操作。

必需

变量描述
MEMENTO_ACCESS_KEYMemento MCP的授权密钥(生成: openssl rand -hex 32)
POSTGRES_PASSWORDPostgreSQL密码(生成: openssl rand -hex 32)

特定配置文件

变量配置文件描述
GITHUB_PERSONAL_ACCESS_TOKENgithubGitHub PAT(创建一个)
SIGNAL_API_URLsignal信号REST API端点
SIGNAL_BOT_NUMBERsignal信号发送者电话号码
SIGNAL_RECIPIENTsignal默认信号接收者
AI_SIGNALS_PATHsignalai信号dist目录的路径
OLLAMA_HOSTollamaOllama端点(默认值: http://host.docker.internal:11434)
CLOUDFLARE_API_TOKENcloudflareCloudflare API代币
CLOUDFLARE_ACCOUNT_IDcloudflareCloudflare帐户ID

可选的

变量默认值描述
COMPOSE_PROFILES*(空)*要启用的后端配置文件的逗号分隔列表
TOOL_DISCOVERYtrue启用BM25工具发现(见下文)
DOMAINlocalhostCaddy反向代理的域名
GATEWAY_PORT9000网关侦听端口
SSH_KEYS_PATH./ssh-keysSSH密钥目录的路径

工具发现

默认情况下,网关使用 BM25工具发现 以减少令牌使用。客户端看到的不是在connect上发送所有100多个工具定义(~18k个令牌),而是~12个工具(~2k个令牌):

工具类型用途
search_tools综合通过自然语言查询在所有工具中搜索BM25
call_tool合成按名称执行任何发现的工具
list_tool_categories自定义可用工具类别概述
7个固定要素真实memento_remember, memento_recall, tools_fleet_status等等。

AI如何使用它

1. list_tool_categories()          → "github: 26 tools", "ssh: 37 tools", ...
2. search_tools(query="create PR") → returns github_create_pull_request definition
3. call_tool(name="github_create_pull_request", arguments={...}) → executes it

禁用发现

TOOL_DISCOVERY=false.env 直接公开所有工具(原始行为)。

后端

后端工具说明启动
纪念品11带pgvector的语义记忆——记住、回忆、反映核心(总是)
工具9车队监控、信号通知、共享配置核心(始终)
码头工人4容器管理——列表、启动、停止、日志核心(始终)
RSS2RSS提要阅读器核心(始终)
GitHub26GitHub API-转发、问题、PR、搜索个人资料: github
奥拉玛13本地LLMs——聊天、生成、建模简介: ollama
安全外壳协议37SSH到机群设备--exec,文件传输配置文件: ssh
信号3信号消息配置文件: signal
云耀变化Cloudflare API简介: cloudflare

添加自定义后端

  1. 在中创建一个Dockerfile mcp-wrappers/your-tool/Dockerfile 使用supergateway模式:
FROM node:22-slim
RUN npm i -g supergateway @your-org/your-mcp-server
EXPOSE 3000
CMD ["supergateway", "--stdio", "npx @your-org/your-mcp-server", \
     "--port", "3000", "--outputTransport", "streamableHttp", "--stateful", \
     "--healthEndpoint", "/health"]
  1. 将服务添加到 docker-compose.yml (如果可选,请使用配置文件)
  2. 将后端URL添加到 mcp-gateway/server.py_build_mcp_config()
  3. 重建: docker compose up -d --build

健康检查

curl http://localhost:9000/health

返回每个后端状态的JSON。 "status": "ok" 指所有连接的后端; "degraded" 意味着一些设备处于离线状态,但网关正常工作。

mTLS(可选)

对于使用客户端证书的直接HTTPS访问:

./caddy/generate-certs.sh              # Create CA (first time only)
./caddy/provision-client.sh my-device "My Device"  # Generate client cert

然后在中取消注释mTLS块 caddy/Caddyfile 并设置您的域名。

故障排除

网关已启动,但某些后端无法访问: 网关仍然适用于连接的后端。检查 docker compose logs .

Gateway在启动时挂起: create_proxy() 如果后端处于崩溃循环中期,则可以挂起。跑 docker compose ps 并重新启动任何不健康的服务。

rss mcp OOM: 内存限制设置为256M。不要降低到这个水平以下。

Ollama后端无法连接(Linux): host.docker.internal 仅适用于Docker桌面(macOS/Windows)。在Linux上,设置 OLLAMA_HOST 连接到主机的LAN IP(例如。, http://192.168.1.100:11434)确保奥利玛在听 0.0.0.0.

缺少目录:mkdir -p caddy/client-certs ssh-keys 或奔跑 ./setup.sh 这会自动创建它们。

项目结构

OpenSmelt/
  mcp-gateway/          FastMCP gateway proxy server
  fastmcp-tools/        Python tools server (fleet, Signal, config)
  memento-mcp/          Node.js shared memory server (pgvector)
  mcp-wrappers/         Supergateway Dockerfiles for stdio MCP servers
    github/ signal/ docker/ ollama/ cloudflare/ ssh/ rss/
  caddy/                Caddyfile + mTLS cert scripts
  client-configs/       MCP client JSON configs (copy into your client)
  scripts/              Test and utility scripts
  deploy.sh             Remote SSH deploy script
  setup.sh              Interactive first-time setup
  docker-compose.yml    Service orchestration
  .env.example          Environment variable template

许可证

麻省理工学院

贡献

贡献.md 有关提交PR、添加后端和运行测试的指南。

目录标签

目录标签

JavaScriptClaude开发工具集成MCP网关本地部署工具聚合自动化服务后端管理

支持客户端

ClaudeCursor

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP