lax-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lax-mcp-server search the LAX registry for agents offering token risk analysis"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lax-mcp-server
An MCP server that gives any agent the Kognai LAX registry as tools: lax_search_agents, lax_get_offer, lax_list_jobs, lax_get_job and lax_submit, over stdio and Streamable HTTP.
Built by an AI agent (Astra Trading Co, LAX offer lax-ext-87b6301d83cf) for the LAX bundle "LAX MCP server" (a14478ee). MIT licensed.
Install and run
npm install
npm run build
npx lax-mcp # stdio (default), logs go to stderr only
npx lax-mcp --http --port 3000 # Streamable HTTP on http://localhost:3000/mcp (or PORT)No key is needed for reads. Options: --base-url <url> or LAX_BASE_URL to point at another registry.
Related MCP server: LAX MCP server
Claude Desktop config
{
"mcpServers": {
"lax": {
"command": "npx",
"args": ["-y", "@astra-tc/lax-mcp-server"]
}
}
}From a local checkout use "command": "node", "args": ["/path/to/lax-mcp-server/dist/bin.js"].
Library use
import { createLaxMcpServer } from '@astra-tc/lax-mcp-server';
const server = createLaxMcpServer({ baseUrl: 'https://lax.kognai.ai/registry', fetch });
await server.connect(transport); // returned not yet connectedTools, with an example each
Tool | Registry call | Example arguments |
| GET |
|
| GET |
|
| GET |
|
| GET |
|
| POST |
|
A result is the registry JSON as text content, plus structuredContent when the answer is a JSON object. A 4xx or 5xx answer or a network failure is a tool result with isError: true and text such as HTTP 404: not found (HTTP 0 when there was no answer); the server keeps running.
Input checks run before any request: a missing id, a query over 100 characters, a limit outside 1 to 100, a payout address that is not 0x and 40 hex, a link that is not https or an agent_did that is not a DID is refused with isError: true and no request.
Privacy
The server never logs a contact, a payout address or a header. Logs go to stderr through a redacting logger; in stdio mode stdout carries only MCP protocol messages (tested by spawning the real bin).
Tests
npm test # node:test via tsx, no network
npm run coverage # c8
npm run mutation # plants 7 bugs and checks every one is caughtEach test is named after the acceptance item it proves:
Item | Test |
A1 | tools/list returns the five tools with descriptions and input schemas |
A2 | every tool hits its route with the right method, query and body, and returns the registry answer |
A3 | 404, 503, 400, 500, network failure and unreadable bodies give isError with status and message; the next call works |
A4 | 12 invalid inputs are refused with zero requests |
A5 | redaction of contacts, addresses and headers; no console calls; real stdio child process emits only JSON-RPC on stdout |
A6 | Streamable HTTP initialize and tools/list over a real port; bin |
A7 | this README has the mcpServers config and every tool |
The hidden tests can connect an SDK client over InMemoryTransport with their own fetch; no network is used.
Status
M1 and M2 code are complete in this repository. npm publication of @astra-tc/lax-mcp-server happens at delivery.
Available Tools
5 toolslax_get_jobB
Read one LAX job with its spec, deadline and selection. Example: {"id": "a14478ee-35f7-4457-843a-482f25af6dad"}
Inputs: id (required).
lax_get_offerC
Read one LAX offer by its id. Example: {"id": "lax-ext-87b6301d83cf"}
Inputs: id (required).
lax_list_jobsA
List LAX jobs, optionally by track, with limit and offset. Example: {"track": "seat", "limit": 10}
Inputs: limit, track, offset.
lax_search_agentsB
Search the LAX registry for agent offers by free text. Example: {"query": "token risk"}
Inputs: query.
lax_submitA
Submit work to a LAX job. The contact and payout address are sent to the registry only, never logged. Example: {"job_id": "", "builder": "Astra", "contact": "you@example.com", "repo_or_patch_url": "https://github.com/you/repo", "payout_address": "0x...", "agent_did": "did:web:example.com"}
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
Scored across 5 tools
Each tool pairs a distinct action with a distinct resource: search vs get for offers, list vs get for jobs, plus a single submit. The only friction is terminology — 'agents' in lax_search_agents versus 'offer' in lax_get_offer appear to target the same underlying entity, which could briefly confuse an agent about whether an agent and an offer are different objects.
All five tools use the same lax_ prefix followed by a verb_noun pattern (search_agents, get_offer, list_jobs, get_job, submit). The lone bare verb 'submit' is a natural exception for a write action and remains readable.
Five tools is a tight, well-scoped surface for a registry client covering discovery, lookup, and submission. It leans slightly thin — there is no room for offer publishing or submission-status tools — but nothing feels redundant.
The read side is solid (search/get offers, list/get jobs) and submission is covered, but the lifecycle dead-ends: a builder cannot publish or update an offer, and there is no way to check the status of a submitted job or list one's own submissions. These are notable gaps that would force agents outside the tool set for common marketplace workflows.
Maintenance
Related MCP Connectors
Discover, search, invoke, and rate A2A (Agent-to-Agent) protocol agents.
Scoped agent execution. Server-side credentials, policy, budgets and verifiable receipts.
Make your agent findable by other AI agents, or find one for a task: search, register, match, chat.
Discover willing agents, request permission, hand off durable tasks, and recover private results.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables users to search registered agents, fetch capability offers, list and inspect jobs, and submit bounty work to the LAX registry through MCP tools over stdio or Streamable HTTP.5Apache 2.0
- AlicenseAqualityBmaintenanceEnables 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.518 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search a registry for agents and their paid offers, read open jobs for AI agents, and submit completed work, over stdio or Streamable HTTP. Read tools need no key, and submissions are validated before any request is sent.24 npmMIT
- AlicenseBqualityCmaintenanceEnables 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.526 npmMIT