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

jido MCP

MCP Server

Jido.MCP是一个将MCP服务器集成到Jido生态系统中的工具,提供共享池化MCP客户端、MCP工具/资源/提示的消费端API、Jido动作和插件路由等功能。

工具数

0

提示词数

0

GitHub Stars

7

资源数

0
本地部署AI代理工作流自动化

安装说明

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

作者 / 组织

agentjido

提供方

agentjido

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

吉多。主控程序

jido_mcp 使用以下工具将MCP服务器集成到Jido生态系统中 anubis_mcp 直接。

特性

  • 每个配置的端点共享池化MCP客户端
  • 用于MCP工具/资源/提示的消费端API
  • Jido动作+信号驱动使用的插件路由
  • 吉多。AI运行时工具同步(MCP工具->代理 Jido.Actions
  • MCP服务器网桥(use Jido.MCP.Server)与明确的排外主义者

安装

def deps do
  [
    {:jido_mcp, "~> 0.1"}
  ]
end

端点配置

config :jido_mcp, :endpoints,
  github: %{
    transport: {:streamable_http, [base_url: "http://localhost:8080", mcp_path: "/mcp"]},
    client_info: %{name: "my_app", version: "1.0.0"},
    protocol_version: "2025-06-18",
    capabilities: %{},
    timeouts: %{request_ms: 30_000}
  },
  local_fs: %{
    transport: {:stdio, [command: "uvx", args: ["mcp-server-filesystem"]]},
    client_info: %{name: "my_app", version: "1.0.0"}
  }

v1中支持的传输:

  • {:stdio, keyword()} 用于基于shell/命令的MCP服务器
  • {:shell, keyword()} 作为一个标准化的别名 :stdio
  • {:sse, keyword()} 用于使用协议的传统HTTP+SSE服务器 2024-11-05
  • {:streamable_http, keyword()} 对于MCP 2025-03-26 / 2025-06-18,包括通过Anubis的可选SSE流媒体 :enable_sse 选项

对于流式HTTP, :url 或一个 :base_url 包含非根路径 标准化为阿努比斯 :base_url + :mcp_path 选项形状。

端点配置也可以通过MFA回调加载:

config :jido_mcp, :endpoints, {MyApp.MCPConfig, :endpoints, []}

回调必须返回映射/关键字端点声明,或者 {:ok, endpoints}.

运行时终结点可以在应用程序启动后注册:

{:ok, endpoint} =
  Jido.MCP.Endpoint.new(:github, %{
    transport: {:streamable_http, [base_url: "http://localhost:8080", mcp_path: "/mcp"]},
    client_info: %{name: "my_app", version: "1.0.0"}
  })

{:ok, ^endpoint} = Jido.MCP.register_endpoint(endpoint)

运行时注册是进程本地的,拒绝重复的端点ID,并启动MCP客户端 仅当首次使用端点时。

运行时端点生命周期

{:ok, endpoint} =
  Jido.MCP.Endpoint.new(:runtime_demo, %{
    transport: {:streamable_http, [base_url: "http://localhost:8080/mcp"]},
    client_info: %{name: "my_app"}
  })

{:ok, ^endpoint} = Jido.MCP.register_endpoint(endpoint)
{:ok, tools} = Jido.MCP.list_tools(:runtime_demo)

{:ok, _removed} = Jido.MCP.unregister_endpoint(:runtime_demo)

对于运行时的配置更改,请注销,然后注册更新的端点。

使用MCP API

{:ok, tools} = Jido.MCP.list_tools(:github)
{:ok, called} = Jido.MCP.call_tool(:github, "search_issues", %{"query" => "label:bug"})

{:ok, resources} = Jido.MCP.list_resources(:github)
{:ok, content} = Jido.MCP.read_resource(:github, "repo://owner/name/README")

{:ok, prompts} = Jido.MCP.list_prompts(:github)
{:ok, prompt} = Jido.MCP.get_prompt(:github, "release_notes", %{"version" => "1.2.0"})

所有通话均返回标准化信封:

  • 成功: %{status: :ok, endpoint: atom(), method: String.t(), data: map(), raw: ...}
  • 错误: %{status: :error, endpoint: atom(), type: ..., message: String.t(), details: ...}

Jido操作+插件

行动

  • Jido.MCP.Actions.ListTools
  • Jido.MCP.Actions.CallTool
  • Jido.MCP.Actions.ListResources
  • Jido.MCP.Actions.ListResourceTemplates
  • Jido.MCP.Actions.ReadResource
  • Jido.MCP.Actions.ListPrompts
  • Jido.MCP.Actions.GetPrompt
  • Jido.MCP.Actions.RegisterEndpoint
  • Jido.MCP.Actions.RefreshEndpoint
  • Jido.MCP.Actions.UnregisterEndpoint
  • Jido.MCP.Actions.SetDefaultEndpoint

插件

defmodule MyApp.Agent do
  use Jido.Agent,
    name: "assistant",
    plugins: [
      {Jido.MCP.Plugins.MCP,
        %{
          default_endpoint: :github,
          allowed_endpoints: [:github, :local_fs]
          # or allowed_endpoints: :all
        }}
    ]
end

allowed_endpoints 默认为 [] (否认所有)如果省略。 设置为 :all 以允许所有当前配置/运行时注册的端点。

信号路径:

  • mcp.tools.list
  • mcp.tools.call
  • mcp.resources.list
  • mcp.resources.templates.list
  • mcp.resources.read
  • mcp.prompts.list
  • mcp.prompts.get
  • mcp.endpoint.register
  • mcp.endpoint.refresh
  • mcp.endpoint.unregister
  • mcp.endpoint.default.set

要在运行时更新插件默认端点,请发出 mcp.endpoint.default.set%{endpoint_id: "github"} (或 nil/省略以清除)。

吉多。好的,同步。

Jido.MCP.JidoAI.Actions.SyncToolsToAgent 发现远程工具并创建代理 Jido.Action 模块,然后在运行中注册它们 Jido.AI.Agent.

Jido.MCP.JidoAI.Actions.UnsyncToolsFromAgent 删除以前同步的代理。

工具同步使用确定性MCP就绪:端点调用等待 Anubis.Client.await_ready/2 在执行之前。

插件路由支持:

  • mcp.ai.sync_tools
  • mcp.ai.unsync_tools

主机运行时编排(信号)

宿主项目应协调运行时端点生命周期和工具同步 明确使用插件信号。

推荐信号序列:

  • 注册端点,然后同步工具

1. mcp.endpoint.register 1. mcp.ai.sync_tools

  • 刷新端点,然后重新同步工具

1. mcp.endpoint.refresh 1. mcp.ai.sync_tools (与 replace_existing: true)

  • 在注销终结点之前取消同步工具

1. mcp.ai.unsync_tools 1. mcp.endpoint.unregister

信号有效载荷示例:

# mcp.endpoint.register
%{
  endpoint_id: "runtime_demo",
  endpoint: %{
    transport: {:streamable_http, [base_url: "http://localhost:8080/mcp"]},
    client_info: %{name: "my_app"}
  }
}

# mcp.ai.sync_tools
%{
  endpoint_id: "runtime_demo",
  agent_server: :my_ai_agent,
  replace_existing: true,
  prefix: "mcp_"
}

# mcp.ai.unsync_tools
%{endpoint_id: "runtime_demo", agent_server: :my_ai_agent}

# mcp.endpoint.unregister
%{endpoint_id: "runtime_demo"}

将Jido暴露为MCP服务器

服务器模块

defmodule MyApp.MCPServer do
  use Jido.MCP.Server,
    name: "my-app",
    version: "1.0.0",
    publish: %{
      tools: [MyApp.Actions.SearchIssues],
      resources: [MyApp.MCP.Resources.ReleaseNotes],
      prompts: [MyApp.MCP.Prompts.CodeReview]
    }
end

该出版物仅明确表示反对。

监督

children =
  Jido.MCP.Server.server_children(MyApp.MCPServer,
    transport: :streamable_http
  )

路由器(可流式传输HTTP)

forward "/mcp", Anubis.Server.Transport.StreamableHTTP.Plug,
  Jido.MCP.Server.plug_init_opts(MyApp.MCPServer)

资源和快速行为

  • Jido.MCP.Server.Resource
  • Jido.MCP.Server.Prompt

对中列出的项目实施这些行为 publish.resourcespublish.prompts.

测试

mix test

目录标签

目录标签

本地部署AI代理工作流自动化ElixirMCP集成Jido生态系统工具同步服务桥接

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP