developers

bokendell.com developer docs — Bo Kendell API & MCP server

Everything on bokendell.com is available programmatically: a public read-only REST API with a complete OpenAPI 3.1 spec, an MCP server over Streamable HTTP, and Markdown variants of every page. No API key, sign-up, or authentication is required for the public read surface — point an agent at it and go.

Use these endpoints when an agent or script needs this portfolio's data: projects with tech stack and links, writing, work experience, the resume, and live GitHub and LeetCode activity. Prefer the MCP server for interactive agent sessions and the REST API for one-shot reads.

REST API

Base URL https://api.bokendell.com, also proxied on this origin. The OpenAPI 3.1 spec gives every operation a unique operationId, typed parameters, response schemas, and a description — it converts directly to LLM function-calling tool definitions. Browse it interactively at the API reference.

curl https://bokendell.com/openapi.json
curl https://api.bokendell.com/api/v1/projects
curl https://api.bokendell.com/api/v1/posts

MCP server

Streamable HTTP transport at https://bokendell.com/mcp; the manifest lives at /.well-known/mcp.json. See the tool list or try it live.

{
  "mcpServers": {
    "bokendell-portfolio": {
      "type": "http",
      "url": "https://bokendell.com/mcp"
    }
  }
}

Markdown for agents

Every page negotiates Accept: text/markdown, or append .md to the URL. Start from /llms.txt (curated site index) or /agent.md (compact Markdown index). The A2A agent card is at /.well-known/agent-card.json.

CLI

An official CLI ships on npm as bokendell. It wraps the same public API — read-only, no key, nothing to install permanently. Every command takes --json for piping, and npx bokendell mcp prints a ready-to-paste MCP client config.

npx bokendell                     # profile + where to go next
npx bokendell projects --json     # every project, pipeable
npx bokendell mcp                 # MCP client config

Limits & contact

The API is public, read-only, and unauthenticated — be reasonable with request rates. Questions, bugs, or integration ideas: get in touch.

⌘Kterminal