https://api.nephia.cc/mcp under OAuth, and local, as an npx command under an API key.
Try it
Once it is added, ask in plain language:What did Reddit say about us this week? Anything negative?The agent calls
list_queries to find your monitor, then list_mentions with source=reddit and a week’s since, and answers from the scored stream:
- “Any leads this week?” →
list_mentionswithintent=["purchase_intent", "comparison"] - “Show me the pricing complaints on my Nephia monitor” →
list_query_buckets, thenget_query_resultswithbucket= - “Find people who can’t get it to deploy” →
list_mentionswithmode=semantic(charged — see below) - “Pause my brand monitor while we’re on holiday” →
query_managewithaction=pause
Clients
Remote (recommended)
One URL, no key. The first call opens your browser: you sign in, a screen lists what the agent is asking for, and you decide. Works in any client that can add a remote MCP server — including the hosted ones that cannot run a local command. Claude Code~/.cursor/mcp.json for every project, or .cursor/mcp.json for one. A remote server is a url and nothing else — no command, no args, no type:
http://localhost:8787/callback on desktop, https://www.cursor.com/agents/mcp/oauth/callback on web) are accepted as they are.
Claude.ai, ChatGPT, and other hosted clients
Add a custom connector and give it the server URL:
The third one arrives unticked. An agent you leave it off for still reads everything — it just cannot spend, and it will say so when a call needs it, naming the permission you did not grant.
Disconnecting
Settings → API keys → Connected agents → Disconnect. The agent has to sign in again to reach your account. A token it is already holding keeps working until it expires, which is at most an hour.
Local (stdio)
An API key and a local command. Right when you want no browser in the loop — a script, a CI job, a machine that is not yours to sign in on. Claude CodemcpServers config
mcp.json as the remote form above — a server entry is either a url or a command, never both.
Both paths serve the same tools from the same registry, and both bill the same way. Every call appears in Spend either way — under the key’s name for a local server, under the agent’s for a remote one.
Tools
Every tool description carries what it costs, so a model can budget before it spends. Check the balance any time withaccount_credits, which is free.
The Source is an argument, not a tool:
list_mentions takes source=reddit rather than there being a reddit_mentions beside an x_mentions. One contract, one place to look.
Reading, and what it costs
Reading your own mentions is free, in any volume, because they are rows you already own. One thing charges:mode="semantic".
The charge is per question, not per page or per result: paging through a semantic answer is free, and asking the same question twice inside ten minutes is one credit.
list_mentions and get_query_results are annotated non-read-only and non-idempotent even though they are free by default, because an MCP annotation describes a tool rather than a call: a client’s auto-approve list should have to say out loud that a tool which can debit the account is allowed to run unattended.
Creating and changing monitors
Queries are configured in the dashboard, not from an agent: a Query carries rules, buckets, delivery channels, an activation schedule and per-source search overrides, and a monitor composed blind is a meter nobody reads. The MCP server can read every Query, and can pause, resume or retire one — which is also how you stop it spending. Watches — the single-source, webhook-first primitive underneath — can be created from an agent withwatch_create. It needs a publicly reachable webhookUrl you control; ask for it, never invent one. Without a receiver, poll matches with watch_feed (kind=events) and delivery outcomes with kind=activity, both free. See Watches and Webhooks.
Errors
Tool results carry actionable error text instead of raw failures:401 tells you to reconnect on the remote server and points to NEPHIA_API_KEY on the local one, 402 to credits (check with account_credits), 404 means not found or not yours — never a 403, which would confirm someone else’s Query exists — and 429/503 include the retry delay. The underlying client already retries 429/502/503/504 with backoff, never timeouts or other 4xx.
On the remote server one more refusal exists: a call the connection was not granted. It comes back as a tool result naming the missing permission, not as a broken connection — reconnect and allow it on the consent screen.
Large responses
Mention lists are shaped for a context window before they reach the model: capped at 25 items per call by default, bodies truncated, screen-only fields (thumbnails, captions, the label/value grid) dropped, and sentiment, intent, bucket, author and URL kept. Ask for a biggerlimit to count, not to read.
Beyond that, any response over 50 000 characters is truncated with an explicit notice — narrow the request or page with the returned cursor. Override with the NEPHIA_MCP_MAX_OUTPUT_CHARS env var.