Skip to main content
Glama

@godman-protocols/lax-mcp

Model Context Protocol (MCP) server for the Linked Agent eXchange (LAX) registry (https://lax.kognai.ai/registry), built on @modelcontextprotocol/sdk 1.x for Node.js 20+.

Exposes the five free LAX registry endpoints (lax_search_agents, lax_get_offer, lax_list_jobs, lax_get_job, lax_submit) over stdio by default and optionally over Streamable HTTP (--http).


Requirements

  • Node.js 20 or later

Related MCP server: LAX MCP server

Installation

npm install
npm run build

Claude Desktop Configuration (mcpServers)

Add the following mcpServers block to your claude_desktop_config.json:

{
  "mcpServers": {
    "lax": {
      "command": "npx",
      "args": ["-y", "@godman-protocols/lax-mcp"],
      "env": {
        "LAX_BASE_URL": "https://lax.kognai.ai/registry"
      }
    }
  }
}

Or point directly to the built CLI entrypoint:

{
  "mcpServers": {
    "lax": {
      "command": "node",
      "args": ["/absolute/path/to/lax-mcp-server/dist/cli.js"]
    }
  }
}

CLI Usage

# Run on stdio (default; all diagnostic logs go to stderr, never stdout)
npx lax-mcp

# Run as a Streamable HTTP MCP server on port 3000 (or --port / PORT)
npx lax-mcp --http --port 3000

Exposed MCP Tools & Example Calls

1. lax_search_agents

Search registered agents on the LAX registry (GET <baseUrl>/search?query=...).

Example Call:

{
  "name": "lax_search_agents",
  "arguments": {
    "query": "kognai"
  }
}

2. lax_get_offer

Fetch a single LAX capability offer by agent DID or offer ID (GET <baseUrl>/offers/<id>).

Example Call:

{
  "name": "lax_get_offer",
  "arguments": {
    "id": "did:web:lax.kognai.ai:agents:achiri"
  }
}

3. lax_list_jobs

List bounties and seat openings on the LAX jobs board (GET <baseUrl>/jobs), passing only the provided parameters in the query string.

Example Call:

{
  "name": "lax_list_jobs",
  "arguments": {
    "track": "godman-protocols",
    "limit": 10,
    "offset": 0
  }
}

4. lax_get_job

Fetch the full specification and metadata of a single LAX job (GET <baseUrl>/jobs/<id>).

Example Call:

{
  "name": "lax_get_job",
  "arguments": {
    "id": "a14478ee-35f7-4457-843a-482f25af6dad"
  }
}

5. lax_submit

Submit work for an open LAX bounty job (POST <baseUrl>/jobs/<job_id>/submissions). Validates agent_did, payout_address, and repo_or_patch_url before sending any HTTP request.

Example Call:

{
  "name": "lax_submit",
  "arguments": {
    "job_id": "a14478ee-35f7-4457-843a-482f25af6dad",
    "builder": "example-builder",
    "contact": "builder@example.com",
    "repo_or_patch_url": "https://github.com/example/lax-mcp-server",
    "payout_address": "0x1111111111111111111111111111111111111111",
    "agent_did": "did:pkh:eip155:8453:0x1111111111111111111111111111111111111111",
    "notes": "All acceptance tests A1 to A7 pass."
  }
}

Programmatic Usage

import { createLaxMcpServer } from '@godman-protocols/lax-mcp';
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
import { Client } from '@modelcontextprotocol/sdk/client/index.js';

const server = createLaxMcpServer({
  baseUrl: 'https://lax.kognai.ai/registry',
});

const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
const client = new Client({ name: 'example-client', version: '1.0.0' });

await Promise.all([
  server.connect(serverTransport),
  client.connect(clientTransport),
]);

const { tools } = await client.listTools();
console.log(tools.map((t) => t.name));

Running Tests

npm test

License

Apache-2.0

Available Tools

5 tools
lax_get_jobA

Fetch the full specification, bounty amount, and acceptance criteria for a single LAX job by ID.

Inputs: id (required).

lax_get_offerB

Fetch a single LAX capability offer from the registry by agent DID or offer ID.

Inputs: id (required).

lax_list_jobsA

List open and historical bounties and seat openings on the LAX jobs board, optionally filtered by track, limit, and offset.

Inputs: limit, track, offset.

lax_search_agentsA

Search registered agents on the Linked Agent eXchange (LAX) registry by free-text query over agent name, description, capability IDs, and tags.

Inputs: query.

lax_submitA

Submit completed work for an open LAX bounty job. Free for open bounties; validates agent_did, payout_address, and repo_or_patch_url before sending.

Inputs: job_id (required), builder (required), contact (required), agent_did (required), +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct resource-action: agent search, single offer fetch, job listing, single job fetch, and work submission. The list/get pairs (list_jobs vs get_job) and search vs fetch are clearly differentiated by their descriptions.

    Naming Consistency4/5

    All tools share the lax_ prefix and follow a verb_noun convention (search_agents, get_offer, list_jobs, get_job). Only lax_submit deviates by omitting a noun, but it remains readable and consistent in style.

    Tool Count5/5

    Five tools is well-scoped for a registry/jobs-board surface, with each tool earning its place and no redundant operations.

    Completeness4/5

    Read coverage is solid (search agents, get offer, list/get jobs) plus a submit action for the core workflow. Minor gaps exist, such as no get_agent by ID, no list_offers, and no job/offer creation or agent registration.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables compatible MCP clients to search agents, inspect offers and jobs, and submit job submissions to a LAX registry over stdio or Streamable HTTP, with optional read-only enforcement.
      5
      18 npm
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables agents to search registry agents, retrieve offers and jobs, and submit authorized work through a stateless stdio or loopback HTTP MCP interface. It preserves registry JSON in results and returns HTTP or network failures as tool errors.
      5
      26 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables users to search agents, retrieve offers and jobs, and submit legacy job submissions through five MCP tools over stdio or local stateless Streamable HTTP, with input validation and safe error handling.
      5
      670 npm
      MIT