Home / Token cost / Courier

The Courier MCP server costs 16,505 tokens before the first call.

Connect Courier and its 123 tool definitions are loaded into the model's context on every request — 8.3% of a 200k window spent before your agent does anything.

QUICK ANSWER The Courier MCP server's tool definitions consume 16,505 tokens — 8.7× the median MCP server (1,905 tokens). A scoped grant exposing only the tools you use cuts that roughly in proportion.

MEASURED FROM SCHEMAS 123 tools · 16,505 tokens · 8.3% of 200k · 1.7% of 1M Method →

What that buys before your agent starts working.

Tool definitions are overhead: they occupy context on every request and compete with your code, documents and conversation history for the same window.

200K WINDOW 8.3%
1M WINDOW 1.7%

Corpus context: Courier ranks #78 of 3,213 measured MCP servers by definition cost. The median is 1,905 tokens, p90 is 7,952, and the heaviest (Fusionauth) is 183,337 — 92% of a 200k window on its own.

Where the 16,505 tokens go.

Each row is one tool definition as a tools/list entry — name, description and input schema — counted with o200k_base. Average: 134 tokens per tool.

ToolCategoryTokens% of server
invoke_ad_hoc_automation Execute 789 4.8%
create_journey_template Write 478 2.9%
create_brand Write 353 2.1%
replace_journey_template Write 326 2.0%
list_messages Read 318 1.9%
update_tenant_preference Write 311 1.9%
create_journey Write 304 1.8%
create_notification Write 284 1.7%
put_notification_content Write 269 1.6%
put_notification_locale Write 264 1.6%
bulk_add_user_tokens Write 259 1.6%
replace_routing_strategy Write 254 1.5%
replace_journey Write 231 1.4%
create_routing_strategy Write 230 1.4%
put_notification_element Write 227 1.4%
send_message_template Write 219 1.3%
send_message Write 203 1.2%
invoke_automation_template Execute 193 1.2%
replace_notification Write 193 1.2%
create_or_update_tenant Write 190 1.2%
patch_profile Write 189 1.1%
invoke_journey Execute 187 1.1%
create_or_replace_user_push_token Write 181 1.1%
create_provider Write 180 1.1%
patch_user_token Write 179 1.1%
send_message_to_list Write 179 1.1%
replace_tenant_template Write 178 1.1%
update_notification_checks Write 177 1.1%
generate_jwt_for_user Write 176 1.1%
update_user_preference_topic Write 170 1.0%
send_message_to_list_template Write 168 1.0%
update_provider Write 164 1.0%
update_brand Write 163 1.0%
track_inbound_event Execute 157 1.0%
bulk_add_user_tenants Write 148 0.9%
publish_notification Write 147 0.9%
courier_installation_guide Read 146 0.9%
get_journey_template Read 145 0.9%
subscribe_user_to_lists Read 140 0.8%
publish_journey_template Write 138 0.8%
subscribe_user_to_list Read 137 0.8%
publish_journey Write 137 0.8%
list_journey_templates Read 130 0.8%
cancel_automation Destructive 126 0.8%
create_or_merge_user Write 124 0.8%
bulk_subscribe_to_list Read 123 0.7%
get_tenant_template_version Read 123 0.7%
get_journey Read 122 0.7%
add_subscribers_to_list Write 122 0.7%
list_routing_strategy_notifications Read 121 0.7%
list_journeys Read 117 0.7%
publish_tenant_template Write 112 0.7%
get_translation Read 110 0.7%
update_translation Write 109 0.7%
delete_tenant_template Destructive 107 0.6%
update_audience Write 107 0.6%
list_notification_versions Read 106 0.6%
list_provider_catalog Read 105 0.6%
get_notification Read 104 0.6%
get_user_preference_topic Read 104 0.6%
add_user_to_tenant Write 104 0.6%
list_tenant_templates Read 102 0.6%
replace_profile Write 102 0.6%
list_automations Read 101 0.6%
list_journey_template_versions Read 101 0.6%
list_tenant_users Read 101 0.6%
get_message_history Read 98 0.6%
archive_journey_template Write 98 0.6%
add_bulk_users Write 97 0.6%
list_routing_strategies Read 93 0.6%
list_user_tenants Read 93 0.6%
create_bulk_job Write 92 0.6%
get_user_preferences Read 90 0.5%
delete_tenant_preference Destructive 89 0.5%
list_lists Read 89 0.5%
list_notification_checks Read 87 0.5%
get_routing_strategy Read 86 0.5%
get_tenant_template Read 86 0.5%
unsubscribe_user_from_list Read 86 0.5%
archive_routing_strategy Write 85 0.5%
cancel_notification_submission Destructive 84 0.5%
delete_user_token Destructive 84 0.5%
remove_user_from_tenant Destructive 84 0.5%
get_user_push_token Read 84 0.5%
get_user_profile_by_id Read 83 0.5%
create_list Write 83 0.5%
get_user_list_subscriptions Read 80 0.5%
list_audience_members Read 80 0.5%
delete_provider Destructive 79 0.5%
list_bulk_users Read 79 0.5%
archive_journey Write 79 0.5%
get_list_subscribers Read 78 0.5%
archive_request Write 78 0.5%
cancel_message Destructive 76 0.5%
get_message_content Read 75 0.5%
get_notification_draft_content Read 75 0.5%
list_journey_versions Read 74 0.4%
run_bulk_job Execute 73 0.4%
get_message Read 73 0.4%
get_audience Read 72 0.4%
get_audit_event Read 71 0.4%
list_tenants Read 71 0.4%
delete_audience Destructive 69 0.4%
get_notification_content Read 69 0.4%
delete_user_list_subscriptions Destructive 68 0.4%
list_user_push_tokens Read 68 0.4%
delete_tenant Destructive 67 0.4%
remove_all_user_tenants Destructive 67 0.4%
get_bulk_job Read 67 0.4%
archive_notification Write 67 0.4%
delete_brand Destructive 66 0.4%
get_provider Read 66 0.4%
list_audit_events Read 66 0.4%
delete_profile Destructive 65 0.4%
get_tenant Read 65 0.4%
delete_list Destructive 64 0.4%
get_brand Read 64 0.4%
get_list Read 64 0.4%
restore_list Write 63 0.4%
list_notifications Read 59 0.4%
list_audiences Read 58 0.4%
list_providers Read 58 0.4%
list_brands Read 57 0.3%

Most agents use a handful of these tools. They pay for all 123.

A PolicyLayer grant exposes only the tools you allow — ungranted definitions are filtered out of the tool list, so they never enter the context window. Estimates below assume typical-weight tools (134 tokens each).

Grant scopeDefinition costReduction
All 123 tools (no gateway) 16,505 tokens
3 granted tools ~403 tokens −98%
5 granted tools ~671 tokens −96%
10 granted tools ~1,342 tokens −92%

Courier token-cost questions.

How many tokens does the Courier MCP server use?+

Its 123 tool definitions total 16,505 tokens — 8.3% of a 200k context window — measured with tiktoken o200k_base over the serialised tools/list payload. Exact counts vary slightly by client and model.

Why does Courier consume tokens before I send a message?+

MCP clients load every connected server's tool definitions — name, description, and input schema — into the model's context so it knows what it can call. That payload is charged against your context window on every request, whether or not a tool is used.

How do I reduce Courier's token usage?+

Expose fewer tools. A PolicyLayer grant scopes Courier to only the tools you allow — ungranted definitions are filtered out of the tool list, so they never enter the context window. A grant of 3 typical tools costs roughly 403 tokens, a 98% reduction.

Does deferred tool loading fix this?+

Partially, in some clients. Claude Code defers MCP tool schemas behind a tool-search step by default, and VS Code has experimental grouping — but you still pay tokens per search and reload, and Cursor, Windsurf and Gemini CLI load definitions upfront. Reducing the exposed tool set cuts the cost in every client.

How these numbers were measured.

01
Serialisation

Each tool is serialised as a tools/list entry — name, description, input schema — from the schemas in the PolicyLayer scan database. Clients differ slightly in framing, so treat counts as close estimates.

02
Tokeniser

tiktoken o200k_base (GPT-4o/o-series). Anthropic's current tokeniser isn't published, so Claude's exact counts will differ; for English text and JSON schemas the totals are close enough to treat these as estimates.

03
Deferred loading

Some clients now defer schema loading (Claude Code's tool search; VS Code experimental grouping). You still pay per search and reload — and Cursor, Windsurf and Gemini CLI load everything upfront.

Computed 07-06-2026 from the PolicyLayer scan database over all 123 catalogued Courier tools. Counts refresh with every site build.

Expose only the tools you use — the rest never enter your context.

A PolicyLayer grant scopes Courier to the tools you actually allow. Ungranted definitions never load, and every call that does run is checked against policy first.

Free to start. No card required.

4,600+ MCP servers and 31,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.