Skip to content

MCP Endpoint

The IKARY Manifest API is available as an MCP server. AI agents and MCP-compatible clients can discover schemas, validate manifests, and get structural guidance through tool calls over the MCP protocol.

Endpoint

POST https://public.ikary.co/mcp

The transport is Streamable HTTP (JSON-RPC 2.0). The endpoint is stateless. No session management or initialization handshake is required.

Connecting

Claude Desktop

Add this to your claude_desktop_config.json:

json
{
  "mcpServers": {
    "ikary-manifest": {
      "url": "https://public.ikary.co/mcp"
    }
  }
}

Cursor

Add this to your .cursor/mcp.json:

json
{
  "mcpServers": {
    "ikary-manifest": {
      "url": "https://public.ikary.co/mcp"
    }
  }
}

Claude Code

bash
claude mcp add ikary-manifest https://public.ikary.co/mcp

Raw JSON-RPC

bash
curl -X POST https://public.ikary.co/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'

Available tools

The server exposes 19 tools across five groups.

Discovery

ToolDescriptionParameters
get_manifest_schemaReturns the CellManifestV1 structure with fields, types, and semantic rulesversion (string, optional)
get_entity_definition_schemaReturns the EntityDefinition contractversion (string, optional)
get_page_schemaReturns page types and their contractspageType (string, optional)
get_capability_schemaReturns the CapabilityDefinition contractcapabilityType (string, optional)

Registry

ToolDescriptionParameters
list_primitivesReturns the primitive catalog; pass source: "custom" for project-specific onescategory (string, optional), source (string, optional)
get_primitive_contractReturns one primitive's full props contractprimitive (string, required)
list_examplesReturns available sample manifests(none)
get_example_manifestReturns the full content of one exampleexample (string, required)

Primitives

These tools have full capability when connecting to the local MCP server (ikary setup ai --local). With the public server, they cover core primitives only.

ToolDescriptionParameters
get_primitive_examplesReturns named example scenarios for a primitivekey (string, required), version (string, optional)
scaffold_primitiveCreates a new custom primitive scaffold in the projectname, label, description, category, props
validate_primitive_propsValidates a props object against a primitive's declared contractkey (string, required), version (string, optional), props (object, required)

Guidance

ToolDescriptionParameters
recommend_manifest_structureRecommends entities, pages, relations from a business goalgoal (string, required)
suggest_page_set_for_entitiesGenerates CRUD pages for given entitiesentities (string[], required)
suggest_relationsSuggests relations from entity definitionsentities (object[], required)
explain_validation_errorsTurns validation errors into fix suggestionserrors (object[], required)

Validation

ToolDescriptionParameters
validate_manifestValidates a full CellManifestV1manifest (object, required)
validate_entityValidates a single EntityDefinitionentity (object, required)
validate_pageValidates a single PageDefinitionpage (object, required)
normalize_manifestValidates and normalizes a manifestmanifest (object, required)

Available resources

The server exposes 5 documentation resources that MCP clients can read for context.

URINameDescription
ikary://docs/manifest-formatikary-manifest-formatManifest format reference with root structure, spec fields, and semantic rules
ikary://docs/entity-schemaikary-entity-schemaEntity definition schema with fields and semantic rules
ikary://docs/page-typesikary-page-typesPage types with available types, fields, and semantic rules
ikary://docs/field-typesikary-field-typesField types covering string, text, number, boolean, date, datetime, enum, and object
ikary://docs/primitive-catalogikary-primitive-catalogUI primitive catalog organized by category

Workflow example

A typical AI agent workflow:

  1. Call recommend_manifest_structure with a business goal to get a starting structure
  2. Build a manifest from the recommendations
  3. Call validate_manifest to check for errors
  4. If errors exist, call explain_validation_errors to understand what to fix
  5. Correct the manifest and validate again
  6. Call normalize_manifest to fill in defaults and get the final output

At any point, the agent can call get_manifest_schema or get_entity_definition_schema to look up field definitions, list_primitives to discover UI components, or read a resource for documentation context.