Issho.MCP (Issho v0.2.0)

Copy Markdown View Source

Issho's tools over MCP, with Sake: a Sake.Server of the tools you give, Issho's (Issho.Tools.room/0) and the components' (Kotoba.Issho.tools/0, Hakushi.Issho.tools/0), for any MCP client. The same tools serve your app's own model without MCP (Issho.Tools).

defmodule MyApp.MCP do
  use Issho.MCP,
    name: "my-app",
    version: "1.0.0",
    tools: Issho.Tools.room() ++ Kotoba.Issho.tools() ++ Hakushi.Issho.tools()
end

# config/config.exs
config :issho, Issho.MCP, instance: MyApp.Issho

Serve it as your app serves MCP: over HTTP or stdio, with Sake's authorization, your own, or none, on its own endpoint or mounted in your own server (mount MyApp.MCP). Who a caller is in the rooms: Issho.MCP.Session.

Options: those of use Sake.Server (:name, :version, :instructions...), and :tools, a list of Issho.Tool modules. Sake is an optional dependency of Issho: add {:sake, "~> 0.4"} to serve MCP.