Docs

Connect a skill to your agent

Every Skuilds skill is a remote MCP endpoint — a single URL, secured by a token, that any MCP-capable agent can call. Author once, connect anywhere.

The one thing to know

Your skill speaks the Model Context Protocol (MCP) over Streamable HTTP. That puts every client into one of two buckets:

  • Native remote MCP (Claude Code, Claude Desktop connectors, Cursor, Windsurf, Codex, the SDKs) — you give them the URL.
  • STDIO-only clients — they launch a local command, so you bridge with npx -y mcp-remote <url>.

The agent never receives your skill's text. It discovers three tools — list_sections, get_section, query — and calls them while it works. Behavior is the product; the recipe stays on the endpoint.

Pick your client

Remote MCP, one command.

claude mcp add --transport http my-skill "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN"

Settings → Connectors → Add custom connector (paid plans).

Name:  my-skill
Remote MCP server URL:
https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).

{
  "mcpServers": {
    "my-skill": { "url": "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN" }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json.

{
  "mcpServers": {
    "my-skill": { "serverUrl": "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN" }
  }
}

Pick "Streamable HTTP", or add to ~/.codex/config.toml.

[mcp_servers.my_skill]
url = "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN"

TypeScript — pass under options.mcpServers.

import { query } from "@anthropic-ai/claude-agent-sdk";

const res = query({
  prompt: "Does this client qualify?",
  options: {
    mcpServers: {
      "my-skill": { type: "http", url: "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN" },
    },
  },
});

Python — a Streamable HTTP MCP server.

from agents import Agent
from agents.mcp import MCPServerStreamableHttp

server = MCPServerStreamableHttp(
    params={"url": "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN"}
)
agent = Agent(name="Assistant", mcp_servers=[server])

For clients without remote MCP — bridge with mcp-remote.

{
  "mcpServers": {
    "my-skill": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN"]
    }
  }
}

Open the MCP Inspector, choose Streamable HTTP, paste the URL.

npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: https://app.skuilds.com/mcp/your-workspace/your-skill?token=YOUR_TOKEN

Auth: the token is embedded in the URL. Where your client supports headers, you can instead send Authorization: Bearer YOUR_TOKEN and drop ?token= from the URL.

Where the URL and token come from

Open your skill in the dashboard → Endpoint & Share. Copy the endpoint URL (the token is embedded). Rotate the token any time to instantly revoke access.

Authentication

The token can travel two ways: embedded as ?token=… in the URL, or as an Authorization: Bearer <token> header where your client supports custom headers. Either is accepted; the header form keeps the token out of the URL.

Ready to publish a skill?

Register your expertise and get a connectable endpoint in minutes — free.

Start free