๐Ÿ”Œ MCP Server

This is a stateless MCP server implementing the MCP 2026-07-28 specification. It exposes tools that AI agents can call to search, read, and explore this site.

Endpoint: POST https://rukuma.dev/mcp

Protocol: JSON-RPC 2.0 over HTTP (stateless)

Content-Type: application/json

Available Tools

๐Ÿ”

search

Semantic search across all content. Returns matching pages with relevance scores via Vectorize + Workers AI.

args: query (string), limit? (number)

๐Ÿ“„

read_page

Get the full markdown content of any page on the site.

args: slug (string)

๐Ÿ“‹

list_pages

List all available pages with slugs, titles, descriptions, and categories.

args: category? (string)

โ„น๏ธ

site_info

Get site metadata โ€” name, description, page count, and capabilities.

args: none

Quick Start

List available tools:

curl -X POST https://rukuma.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Search the site:

curl -X POST https://rukuma.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search","arguments":{"query":"agentic web"}},"id":2}'

Read a page:

curl -X POST https://rukuma.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"read_page","arguments":{"slug":"what-is-agentic-web"}},"id":3}'

Initialize handshake:

curl -X POST https://rukuma.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{},"id":0}'

Connect from an MCP Client

Using the MCP TypeScript SDK:

import { Client } from "@modelcontextprotocol/sdk/client";

const client = new Client({
  url: "https://rukuma.dev/mcp",
  // Stateless โ€” no session needed
});

const tools = await client.listTools();
// [search, read_page, list_pages, site_info]

const results = await client.callTool("search", {
  query: "agentic web"
});

View llms.txt ยท robots.txt ยท sitemap.xml ยท API health ยท Agent stats