Skip to content
JAOT

MCP Integration

JAOT exposes its optimization capabilities through the Model Context Protocol (MCP), allowing AI agents and LLM-powered applications to discover and use optimization tools without custom integration code.

What is MCP?

The Model Context Protocol is an open standard that lets AI applications discover and call external tools. Instead of writing bespoke API integrations, an MCP client (such as Claude Desktop, Cursor, or any compatible agent) connects to an MCP server and automatically discovers the tools it provides.

For JAOT, this means any MCP-compatible AI assistant can:

  • Solve optimization problems by describing them in conversation
  • Browse the template library and marketplace
  • Execute activated models with user data
  • Check credit balances and execution results

Connecting to JAOT via MCP

JAOT runs an MCP server at the /mcp endpoint using HTTP+SSE transport.

Endpoint:

https://api.jaot.io/mcp

The MCP endpoint is publicly accessible -- no authentication is needed to connect and discover tools. Individual tools that modify data or consume credits require a Bearer API key, which is passed as a header on tool invocations.

Claude Desktop Configuration

Add JAOT as an MCP server in your Claude Desktop configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "jaot": {
      "url": "https://api.jaot.io/mcp",
      "headers": {
        "Authorization": "Bearer ok_live_your_key_here"
      }
    }
  }
}

After saving, restart Claude Desktop. The JAOT tools appear in the tool list and Claude can use them during conversations.

Other MCP Clients

Any MCP client that supports HTTP+SSE transport can connect to JAOT. Point the client to https://api.jaot.io/mcp and configure authentication headers as required by the client.

Available Tools

JAOT exposes 12 MCP tools organized into five categories:

Solve Tools

ToolAuthDescription
solve_problemYesSolve an optimization problem defined as variables, constraints, and an objective
validate_problemYesValidate a problem definition without solving (no credits charged)

Catalog Tools

ToolAuthDescription
list_templatesNoList available problem templates with names, categories, and descriptions
get_templateNoGet a specific template's details, input schema, and example input
solve_with_templateYesSolve a problem using a template and user-provided input data

Marketplace Tools

ToolAuthDescription
list_catalog_modelsNoBrowse published models in the marketplace
get_catalog_modelNoGet a specific marketplace model's details
get_catalog_model_schemaNoGet the input schema for a marketplace model
activate_catalog_modelYesActivate (purchase) a marketplace model for your organization

Execution Tools

ToolAuthDescription
execute_modelYesExecute an activated model with input data
get_executionYesRetrieve execution results and status

Credits Tools

ToolAuthDescription
get_credit_balanceYesCheck your organization's current credit balance

Example Workflows

Solving a Problem from Scratch

An AI agent using JAOT's MCP tools might follow this flow:

  1. User: "I need to optimize my delivery routes for 5 warehouses and 20 customers."
  2. Agent calls solve_problem with a vehicle routing formulation:
{
  "name": "delivery_routing",
  "variables": [
    {"name": "route_1_2", "type": "binary"},
    {"name": "route_1_3", "type": "binary"}
  ],
  "objective": {
    "sense": "minimize",
    "expression": "12*route_1_2 + 8*route_1_3 + ..."
  },
  "constraints": [
    {"name": "visit_customer_2", "expression": "route_1_2 + route_3_2 + route_4_2 = 1"}
  ],
  "options": {"time_limit_seconds": 60}
}
  1. The solver returns the optimal routes with the minimum total distance.

Using a Template

A simpler path for well-known problem types:

  1. Agent calls list_templates to see what is available
  2. Agent calls get_template("knapsack") to get the input schema
  3. User provides item data
  4. Agent calls solve_with_template("knapsack", {"capacity": 50, "items": [...]}) to get the solution

Marketplace Path

For pre-built domain-specific models:

  1. Agent calls list_catalog_models to browse the marketplace
  2. Agent calls get_catalog_model("cat_abc123") to check model details
  3. Agent calls get_catalog_model_schema("cat_abc123") to see required inputs
  4. Agent calls activate_catalog_model("cat_abc123") to activate for the organization
  5. Agent calls execute_model("orgmdl_xyz789", {"input_data": {...}}) to run it
  6. Agent calls get_execution to retrieve results

Authentication for MCP Tools

Tools marked "Auth: Yes" require a valid API key. Pass your key in the MCP connection headers as shown in the configuration section above. If a tool requiring auth is called without credentials, it returns an error message explaining how to authenticate.

Tools marked "Auth: No" are publicly accessible and can be used without any API key. This allows agents to browse templates and the marketplace catalog before the user decides to authenticate.

AI Discovery: llms.txt

JAOT also provides standardized discovery documents for AI agents at well-known URLs:

URLContent
/.well-known/llms.txtConcise discovery document with endpoint list and MCP tool names
/.well-known/llms-full.txtComprehensive documentation including authentication guide, full API reference, problem JSON schema, and optimization concepts

These documents follow the llms.txt specification and allow AI agents to understand JAOT's capabilities without parsing HTML documentation.

Credit Consumption

MCP tool calls that trigger optimization solves consume credits from your organization's balance, following the same pricing formula as direct API calls. Use get_credit_balance to check your balance, and the validate_problem tool to estimate credit cost before solving.

See Rate Limits and Credits for the complete credit pricing formula and plan details.