Skip to main content
Glama
README.md
# oratilo-mcp

MCP server for [oratilo](https://oratilo.com) — a shared library of YouTube videos
re-edited into concept-structured summaries.

**What it's for:** before an agent spends work summarizing a video, it can check
whether a summary already exists. A cache is only a cache if something reads it.

## Install

Node 18+. No dependencies. Plain MCP over stdio, so any MCP client can run it.

**Claude Code**

```bash
claude mcp add --scope user oratilo -- npx -y oratilo-mcp
```

**Codex CLI** — `codex mcp add`, or in `~/.codex/config.toml`:

```toml
[mcp_servers.oratilo]
command = "npx"
args = ["-y", "oratilo-mcp"]
```

**Kimi CLI** — `/mcp-config` in the TUI, or in `~/.kimi/mcp.json`:

```json
{
  "mcpServers": {
    "oratilo": { "command": "npx", "args": ["-y", "oratilo-mcp"] }
  }
}
```

**Anything else** — the JSON block above is the common shape (Claude Desktop, Cursor,
Windsurf, Cline …); drop it into that client's MCP config file. If you drive GLM /
Z.ai or another model *through* one of these clients, configure the client, not the
model provider.

Verify with `/mcp` in whichever client you used.

## What you get

**Prompt — `summarize`.** One command for people. Give it a YouTube link; it asks
which language you want, looks the video up in oratilo, and hands back the existing
summary if there is one. If there isn't, it summarizes the video for you normally.

If your client doesn't support MCP prompts, you won't see this command — that's fine.
The server sends the same guidance in its `instructions` at connect time, so just ask
in plain language ("summarize this video: <url>") and the agent will check the library
first.

**Tool — `oratilo_lookup`.** Exact check for one video. Returns the full summary plus
provenance: `source`, `format`, `updated`, and the `model` recorded when it was
generated. Miss means the library doesn't cover that video.

**Tool — `oratilo_search`.** Full-text search over the library when you don't have a
URL — by topic, phrase, person or company. Returns ranked matches with page links and
snippets; follow up with `oratilo_lookup` for the full text.

Both tools take an optional `lang` (`ko` · `en` · `ja` · `es`; default `ko`).

## Verifying a summary

Claims carry footnote markers `[n]` that map to a timestamp list at the end of each
summary. Deep-link `source` + `&t=<seconds>s` to check any single claim against the
video itself. oratilo stores no transcripts — a summary is an original re-edit, not a
transcription.

## Scope and limits

- **Read-only.** oratilo is a single-author library today; there is no contribution
  endpoint, so a miss simply means the video isn't covered.
- The server talks only to `oratilo.com` public data. **It never contacts YouTube.**
- The corpus is small and deliberately curated — expect misses.
- Summaries can be wrong. Every page has a correction-report link, and `updated`
  changes when a page is revised.

`ORATILO_BASE` may point the server at a **localhost** origin for development. Any
other host is refused and the server falls back to oratilo.com — otherwise a hostile
origin could feed an agent invented text as "oratilo's summary". Responses from a
development origin carry a warning and drop the citation guidance.

## License

MIT.

**Status:** oratilo is a personal archive — the library is not indexed and is not
accepting contributions. This server still works as a read-only lookup against it.

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: lookup is for checking a specific video ID/URL for existing coverage, while search is for discovering what content exists by topic when no specific URL is known. The descriptions explicitly clarify when to use each, leaving no ambiguity whatsoever.

Naming Consistency4/5

Both tools follow a consistent oratilo_ prefix with a clear verb (lookup, search). The pattern is consistent and predictable, though with only two tools the naming convention is minimally demonstrated.

Tool Count3/5

At 2 tools, the surface feels thin for a library with search and retrieval capabilities, though it could be argued these two operations are the core of what's needed. The count is borderline but reasonable given the limited scope described.

Completeness3/5

Core read operations (lookup and search) are covered, providing a functional surface. However, there are no write/contribution tools (e.g., adding or updating a summary), so the surface covers only the lookup half of the workflow and leaves the 'summarize it yourself' path entirely to the agent.

Maintenance

ActivityMaintained
ResponsivenessSyncing