Skip to content
Corduroy Labs
MCP endpoint · public · rate-limited

You found the MCP endpoint.

This URL is a Model Context Protocol server, not a webpage. Point an MCP-capable client at it and you get two tools that read the studio’s updates from our JSON Feed. If you’re curious what MCP is or why we shipped this, the post explaining it is here.

Endpoint URL
https://corduroy-labs.ai/mcp

Copy this. Paste it into a client below.

TRANSPORT
Streamable-HTTP
AUTH
None — public
RATE LIMIT
60 req / hour / IP
TOOLS
list_updates, get_update
Connect

Three clients, same URL.

Any MCP client that speaks streamable-HTTP can reach the endpoint. Below are the three most common. If yours isn’t here, the pattern is the same — add a server entry with URL https://corduroy-labs.ai/mcp and transport streamable-http.

CLAUDE DESKTOP

Add to claude_desktop_config.json

Open Settings → Developer → Edit Config, then merge the block below into the file.

{
  "mcpServers": {
    "corduroy-labs": {
      "url": "https://corduroy-labs.ai/mcp",
      "transport": "streamable-http"
    }
  }
}

Restart Claude Desktop. In a new chat, ask “what has Corduroy Labs shipped recently?” and the client will call list_updates.

CURSOR

Add to ~/.cursor/mcp.json

Or the project-scoped .cursor/mcp.json in the workspace root.

{
  "mcpServers": {
    "corduroy-labs": {
      "url": "https://corduroy-labs.ai/mcp"
    }
  }
}

Cursor auto-detects streamable-HTTP from the URL. Reload the MCP panel and the two tools appear under “corduroy-labs”.

N8N

Use the MCP Client node

Add an MCP Client Tool node to your workflow. Set Endpoint URL to https://corduroy-labs.ai/mcp and Server Transport to HTTP Streamable. Leave authentication blank.

The two tools are then callable from the same node, or usable as agent tools by attaching the node to an AI Agent.

RAW HTTP / SCRIPT

Or hit it directly

The endpoint speaks JSON-RPC 2.0 over HTTP with SSE for streamed responses. This one-liner lists the available tools:

curl -N -X POST https://corduroy-labs.ai/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'
Tools

Two functions, that’s it.

The server is a thin projection of /feed.json. Every value returned is already public on the site. Nothing here reads private studio data.

list_updates
(limit?: number)

Returns the studio’s published updates from /feed.json, newest first. Optional limit truncates to the first N.

get_update
(slug: string)

Returns one update matched by URL slug (e.g. "the-agent-becomes-a-teammate"). Body, title, tags, and image are included.

Operational notes

The boring details.

Rate limit. Sixty requests per hour per source IP, sliding window, enforced in-process. On the sixty-first request the endpoint returns 429 with a Retry-After header in seconds. If you need a higher ceiling for a specific integration, get in touch.

Cache. The server refetches /feed.json at most once every five minutes. Newly published updates take up to five minutes to appear.

Source. MIT-licensed Python package, self-hosted at /artifacts/corduroy-labs-mcp-v0.1.1.tar.gz. Roughly a hundred lines of code. Adapt it for any site that ships a JSON Feed.

Availability. The endpoint runs on the same infrastructure as the marketing site. If the site is up, the endpoint is up. No separate status page.

Building something that speaks to agents through the studio’s updates? We’d like to see it.