ArkeAi
AI integrations for Arke. Exposes an Arke project to MCP-capable agents (Claude Desktop, Cursor, IDE integrations) over Streamable HTTP.
Installation
Add arke_ai to your mix.exs:
def deps do
[
{:arke_ai, "~> 0.1"}
]
endQuick start
Mount ArkeAi.Mcp.Router in your Phoenix router:
forward "/mcp", ArkeAi.Mcp.Router,
auth: :local,
project: :my_project,
otp_app: :my_app,
expose: [
{:arke, :car, [:list, :get, :search, :create, :update, :delete]},
{:group, :vehicle, [:list, :get, :search, :list_arkes, :get_schema, :add_arke, :remove_arke]},
{:system, :arke, [:list, :get, :create, :update, :delete, :add_parameter, :remove_parameter]},
{:system, :parameter, [:list, :get, :create, :update, :delete]},
{:system, :group, [:list, :get, :create, :update, :delete]}
]
Connect any MCP client to http://localhost:4000/mcp.
Auth modes
:local— IP-restricted to localhost. Trusted dev environment, no permission checks.:bearer— Guardian JWT verification. Per-call permission gate + row-level filter scoping viaArkeAuth.Utils.Permission. Project and member extracted from the token.
Transport
Implements MCP's Streamable HTTP transport:
POST /mcp— JSON-RPC request/responseGET /mcpwithAccept: text/event-stream— SSE stream for server-pushednotifications/tools/list_changedafter schema mutations
Stdio is not supported directly — bridge with mcp-remote
for stdio-only clients.
Documentation
Full configuration, op tables per type, and protocol details: hexdocs.pm/arke_ai.
License
Apache 2.0. See LICENSE.