mcp-context-cost

obsidian-rest — context cost

10,173 tokens across 12 tools — moderate (5–15K). Measured 2026-09-04 under methodology v1.0.

An Anthropic request carries 5,878 of those tokens as tool definitions, and Claude counts those at 10,172.

   
server (self-reported) @cyanheads/mcp-ts-core v0.8.18
status measured
tokenizer tiktoken / o200k_base
launch command npx -y obsidian-mcp-server
isolation docker · public.ecr.aws/docker/library/node:22-slim · network bridge · linux/amd64 · network enabled for package fetch; clean FS, no host credentials
env vars supplied OBSIDIAN_API_KEY
canonical SHA-256 85d23a7fa63923641625701d0c5fff39249eb8b379c3c1a7a444fef6437d6bc4
category community
source https://github.com/cyanheads/obsidian-mcp-server

Where the tokens are

tool tokens share description input schema output schema
obsidian_get_note 1,523 15.0% 41 578 858
obsidian_search_notes 1,369 13.5% 83 368 872
obsidian_manage_tags 1,052 10.3% 96 404 513
obsidian_patch_note 1,028 10.1% 58 729 201
obsidian_write_note 933 9.2% 129 643 114
obsidian_manage_frontmatter 878 8.6% 41 409 386
obsidian_append_to_note 817 8.0% 124 570 81
obsidian_replace_in_note 812 8.0% 54 555 162
obsidian_list_notes 774 7.6% 75 197 456
obsidian_delete_note 438 4.3% 41 289 69
obsidian_open_in_ui 298 2.9% 35 121 101
obsidian_list_tags 249 2.4% 59 24 118

Each tool is tokenized on its own, so the parts do not sum exactly to the whole: the array adds its own brackets and commas, and the tokenizer merges tokens across object boundaries. The badge number is always the count of the whole array, never a sum of parts.

What this costs on Claude

Measured 2026-09-14 against claude-opus-5 via Anthropic’s count_tokens (method tools-delta/v1).

  tokens  
o200k, full capture 10,173 the badge number — every byte tools/list returned
o200k, Anthropic fields only 5,878 42.2% of the capture is MCP-only metadata
Claude, same fields 10,172 1.00× the badge number

An Anthropic tool definition carries name, description, and input_schema and nothing else, so title, annotations, outputSchema, execution, and icons are dropped before the request — that is the second row. The third row is the same tools counted by Anthropic, which is larger than the second because Anthropic’s tokenizer is denser on this content than o200k_base and the API adds its own framing (at most 328 tokens of it fixed, measured against a single minimal tool). The two effects run in opposite directions, which is why the Claude number is not a fixed multiple of the badge.

Over time

date tokens tools release measured in change
2026-09-03 10,173 12 not recorded docker —
2026-09-04 10,173 12 0.8.18 docker no change

Full series: results/history.csv.

Re-derive it

npx -y mcp-context-cost verify results/obsidian-rest/measurement.json

That re-tokenizes the published capture and checks the count and the hash. If it disagrees with the badge, the badge is wrong — open an issue and it gets corrected.

Badge JSON · All servers · Leaderboard · Methodology