---
title: "Bo Kendell — Developers"
description: "Use these endpoints when an agent or script needs Bo Kendell's portfolio data: projects (with tech stack and links), writing, work experience, resume, tech stack, and GitHub/LeetCode activity. Prefer the MCP server for interactive agent sessions and the REST API for one-shot reads."
canonical: "https://bokendell.com/developers"
last-updated: 2026-08-25
---

# Bo Kendell — Developers

> Everything on bokendell.com is available programmatically: a public read-only
> REST API, an MCP server, and Markdown variants of every page. No API key or
> authentication is required for the public read surface.

## When to use this

Use these endpoints when an agent or script needs Bo Kendell's portfolio data:
projects (with tech stack and links), writing, work experience, resume, tech
stack, and GitHub/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 at `https://bokendell.com`)
- OpenAPI 3.1 spec: [https://bokendell.com/openapi.json](https://bokendell.com/openapi.json) — every
  operation has a unique `operationId`, typed parameters, response schemas,
  and a description, so the spec converts directly to LLM function-calling
  tool definitions.
- Interactive reference: [https://bokendell.com/reference](https://bokendell.com/reference)

Quickstart:

```sh
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`. Manifest:
[https://bokendell.com/.well-known/mcp.json](https://bokendell.com/.well-known/mcp.json).

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

Tool list and a live demo: [https://bokendell.com/reference/tools](https://bokendell.com/reference/tools)
and [https://bokendell.com/mcp/try](https://bokendell.com/mcp/try).

## Markdown for agents

Every page negotiates `Accept: text/markdown`, or append `.md`:

- [https://bokendell.com/llms.txt](https://bokendell.com/llms.txt) — curated site index
- [https://bokendell.com/agent.md](https://bokendell.com/agent.md) — compact Markdown index
- `/projects.md`, `/writing.md`, `/experience.md`, `/resume.md`,
  `/projects/{slug}.md`, `/writing/{slug}.md`

## CLI

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

Read-only, no key. Published on npm as `bokendell`. Agents should generally
prefer the MCP server or the REST API directly; the CLI is a convenience
wrapper over the same public data.

## A2A

Agent card: [https://bokendell.com/.well-known/agent-card.json](https://bokendell.com/.well-known/agent-card.json).

## Limits & contact

The API is public, read-only, and unauthenticated; be reasonable with request
rates. Questions or issues: [https://bokendell.com/contact](https://bokendell.com/contact) or
aaronkendell@gmail.com.
