Token导航 LogoToken导航

MCP Server · 安全风控

ex MCP

ExMCP是一个完整的Elixir实现,支持模型上下文协议(MCP)和代理客户端协议(ACP),使AI模型能够通过标准化协议与本地和远程资源安全交互。

未说明官方级别未说明来源级核验工具 0
多协议支持Claude模型交互

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
azmaveth
提供方
azmaveth

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

14

仓库热度

收录来源

1 个

MCP World

选型结论

ex MCP 属于安全风控类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

ExMCP

模型上下文协议(MCP)和代理客户端协议(ACP)的完整Elixir实现

______________________________________________________________________

概述

ExMCP是Elixir的全面实施 模型上下文协议 和那个 代理客户端协议,使人工智能模型能够通过标准化协议与本地和远程资源安全交互。它为客户端和服务器实现提供了多种传输选项,包括通过Plug兼容性进行本机Phoenix集成,以及通过ACP控制Gemini CLI、Claude Code和Codex等编码代理的能力。

主要特点

  • 完全符合MCP --协议版本2024-11-05、2025-03-26、2025-06-18和2025-11-25
  • 100%MCP合规性 --223/223客户端检查,39/39服务器检查(官方测试套件)
  • 多个传输 --HTTP/SSE、stdio和本机BEAM(约15μs本地调用)
  • 凤凰插头 --本地凤凰城与 ExMCP.HttpPlug
  • DSL和处理程序API --声明性工具/资源/提示定义或基于回调的处理程序
  • OAuth 2.1 --自动401→发现→PKCE→令牌流、作用域升级、CIMD、JWT客户端身份验证(private_key_jwt)、企业SSO(ID-JAG)、令牌撤销(RFC 7009)、可插拔身份验证提供者
  • OTP本机 --监控树、指数回退自动重连、88个遥测事件
  • 代理客户端协议(ACP) --控制任何运输的编码代理(Gemini CLI、Claude Code、Codex、Pi、Hermes等)
  • 3100+次测试 --全面的套件,包括官方MCP合规性、集成和性能

安装

添加 ex_mcp 您的依赖关系 mix.exs:

def deps do
  [
    {:ex_mcp, "~> 0.9.0"}
  ]
end

快速开始

凤凰集成

将MCP服务器功能添加到您的Phoenix应用程序中:

# In your Phoenix router
defmodule MyAppWeb.Router do
  use MyAppWeb, :router

  scope "/api/mcp" do
    forward "/", ExMCP.HttpPlug,
      handler: MyApp.MCPHandler,
      server_info: %{name: "my-phoenix-app", version: "1.0.0"},
      sse_enabled: true,
      cors_enabled: true
  end
end

# Create your MCP handler
defmodule MyApp.MCPHandler do
  use ExMCP.Server.Handler

  @impl true
  def init(_args), do: {:ok, %{}}

  @impl true
  def handle_initialize(_params, state) do
    {:ok, %{
      name: "my-phoenix-app",
      version: "1.0.0",
      capabilities: %{tools: %{}, resources: %{}}
    }, state}
  end

  @impl true
  def handle_list_tools(_cursor, state) do
    tools = [
      %{
        name: "get_user_count",
        description: "Get total number of users",
        inputSchema: %{type: "object", properties: %{}}
      }
    ]
    {:ok, tools, nil, state}
  end

  @impl true
  def handle_call_tool("get_user_count", _args, state) do
    count = MyApp.Accounts.count_users()
    {:ok, [%{type: "text", text: "Total users: #{count}"}], state}
  end
end

DSL服务器

以声明方式定义工具、资源和提示:

defmodule MyServer do
  use ExMCP.Server

  deftool "greet" do
    meta do
      name "Greet"
      description "Greets a person by name"
    end

    input_schema %{
      type: "object",
      properties: %{name: %{type: "string", description: "Person to greet"}},
      required: ["name"]
    }
  end

  defresource "info://about" do
    meta do
      name "About"
      description "Server information"
    end

    mime_type "text/plain"
  end

  @impl true
  def handle_tool_call("greet", %{"name" => name}, state) do
    {:ok, %{content: [text("Hello, #{name}!")]}, state}
  end

  @impl true
  def handle_resource_read("info://about", _uri, state) do
    {:ok, [text("MyServer v1.0")], state}
  end
end

独立客户端

# Connect to a stdio-based server
{:ok, client} = ExMCP.Client.start_link(
  transport: :stdio,
  command: ["node", "my-mcp-server.js"]
)

# List available tools
{:ok, tools} = ExMCP.Client.list_tools(client)

# Call a tool
{:ok, result} = ExMCP.Client.call_tool(client, "search", %{
  query: "Elixir programming",
  limit: 10
})

本地BEAM传输

对于受信任的Elixir集群,请使用本机BEAM传输:

defmodule MyToolService do
  use ExMCP.Service, name: :my_tools

  @impl true
  def handle_mcp_request("list_tools", _params, state) do
    tools = [
      %{
        "name" => "ping",
        "description" => "Test tool",
        "inputSchema" => %{"type" => "object", "properties" => %{}}
      }
    ]
    {:ok, %{"tools" => tools}, state}
  end

  @impl true
  def handle_mcp_request("tools/call", %{"name" => "ping"}, state) do
    {:ok, %{"content" => [%{"type" => "text", "text" => "Pong!"}]}, state}
  end
end

# Start your service (automatically registers with ExMCP.Native)
{:ok, _} = MyToolService.start_link()

# Direct service calls (~15us latency)
{:ok, tools} = ExMCP.Native.call(:my_tools, "list_tools", %{})

ACP:控制编码代理

使用 代理客户端协议 以编程方式控制编码代理。ACP适用于任何传输方式(stdio、HTTP/SSE、原生BEAM):

# Native ACP agents over stdio (Gemini CLI, Hermes, OpenCode, Qwen Code, etc.)
{:ok, client} = ExMCP.ACP.start_client(command: ["gemini", "--acp"])

# Create a session and send a prompt
{:ok, %{"sessionId" => sid}} = ExMCP.ACP.Client.new_session(client, "/my/project")
{:ok, %{"stopReason" => _}} = ExMCP.ACP.Client.prompt(client, sid, "Fix the failing tests")

# Adapters for non-native agents (Claude Code, Codex, Pi)
{:ok, client} = ExMCP.ACP.start_client(
  command: ["claude"],
  adapter: ExMCP.ACP.Adapters.Claude
)

# Pi coding agent with full RPC support
{:ok, client} = ExMCP.ACP.start_client(
  command: ["pi"],
  adapter: ExMCP.ACP.Adapters.Pi,
  adapter_opts: [model: "anthropic/claude-sonnet-4"]
)

看 ACP指南 了解全部细节。

传输性能

传输延迟最适合
原生BEAM~15usElixir集群通信
标准~1-5ms子进程通信
HTTP/SSE~5-20msWeb应用程序、远程API

文档

入门指南

指南

开发与API

贡献

欢迎投稿!看 开发指南 有关设置和测试说明。

  1. 分叉存储库
  2. 创建要素分支
  3. 跑 make quality 确保代码质量
  4. 提交拉取请求

许可证

麻省理工学院——见 许可证.

致谢

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

Elixir本地部署AI协议Elixir库模型交互安全通信多协议支持

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
ex MCP

MCP World · 本页

0未说明未标注1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

ex MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

ex MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

ex MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

ex MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

ex MCP 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP