---
title: "The Notetakers API and MCP server"
description: "Everything on thenotetakers.com can be read from code, for free. There is no sign up, no API key and no auth. Use whichever fits your tool: a read-only JSON…"
canonical: "https://thenotetakers.com/developers"
last_updated: "2026-10-19"
---

Everything on thenotetakers.com can be read from code, for free. There is no sign up, no API key and no auth. Use whichever fits your tool: a read-only JSON API, an MCP server, or a Markdown copy of every page.

## REST API

List or search posts with `GET https://thenotetakers.com/api/v1/posts`. Results are sorted newest updated first.

- `q`: optional string, up to 200 characters. Case-insensitive match against each post's title, description and body. Omit it to list all posts.
- `limit`: optional integer, 1 to 50. Defaults to 20.

The response is `{ "posts": [...] }`. Each item has:

- `slug`
- `title`
- `description`
- `url`: the canonical HTML URL
- `markdownUrl`: the Markdown version of the post
- `updated`: the last updated date, as YYYY-MM-DD

```sh
curl https://thenotetakers.com/api/v1/posts
curl "https://thenotetakers.com/api/v1/posts?q=free%20plan&limit=5"
```

Get one post with `GET https://thenotetakers.com/api/v1/posts/{slug}`. It returns the same fields, plus `markdown`: the full post as Markdown with YAML frontmatter.

```sh
curl https://thenotetakers.com/api/v1/posts/circleback-free-plan
```

`GET https://thenotetakers.com/api` is the API index. It lists the entry points: posts, openapi, mcp, docs.

Responses are JSON (`application/json`), and CORS is open (`Access-Control-Allow-Origin: *`).

**Errors.** Errors use RFC 9457 problem details, with content type `application/problem+json` and the fields `type`, `title`, `status`, `detail` and `instance`.

- 404: unknown slug, or any other path under /api.
- 400: invalid `q` or `limit`, or a slug longer than 200 characters.
- 405: wrong HTTP method. The response includes an `Allow: GET` header.

**Machine-readable descriptions.**

- OpenAPI 3.1 document: https://thenotetakers.com/openapi.json
- API catalog (RFC 9727): https://thenotetakers.com/.well-known/api-catalog

## MCP server

Point an MCP client at `https://thenotetakers.com/api/mcp`. The server is read-only and needs no auth.

The transport is Streamable HTTP: JSON-RPC 2.0 over POST, one message per request, with JSON responses. Any non-POST request returns 405 with `Allow: POST`.

Supported protocol versions: `2026-07-28`, `2025-11-25`, `2025-06-18`, `2025-03-26`.

Three tools, all read-only:

- `search_posts`: lists every post, or only the posts whose title, description or body match a query, newest updated first. Parameters: `query` (optional string, up to 200 characters; omit it or leave it empty to list all posts) and `limit` (optional integer, 1 to 50, default 20).
- `get_post_markdown`: returns one post as Markdown with YAML frontmatter, the same document served at the post's .md URL. Parameter: `slug` (required string, 1 to 200 characters). Get slugs from `search_posts`.
- `get_llms_txt`: returns llms.txt. Parameter: `full` (optional boolean, default false). Set it to true to get llms-full.txt instead.

Start a session with an initialize request:

```sh
curl -X POST https://thenotetakers.com/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0.0"}}}'
```

Server card (server name `com.thenotetakers/reviews`, version `1.0.0`): https://thenotetakers.com/.well-known/mcp/server-card.json

## llms.txt and Markdown

- https://thenotetakers.com/llms.txt lists every post with its Markdown URL.
- https://thenotetakers.com/llms-full.txt puts every post body in a single file.
- Every page has a Markdown copy at the same URL plus `.md`. This page, for example, is at https://thenotetakers.com/developers.md.

## Versioning

The API is v1, and the version is part of the URL path (`/api/v1`). Breaking changes ship under a new versioned path such as `/api/v2`.

## Rate limits

There are no published rate limits. API responses are cached for a few minutes, so polling more often than that gains nothing.

## Questions

Email hello@thenotetakers.com.
