The Indian Opinion MCP server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@The Indian Opinion MCP serverget me the latest briefs on the Indian budget"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Indian Opinion MCP server
The Indian Opinion MCP server gives AI agents and assistants Indian news briefs synthesised from many outlets, with corroboration counts and how each outlet framed the story, plus the daily digest, topic alerts and Breaking News for agent accounts.
Endpoint | For |
| Any MCP client over Streamable HTTP. Public tools need no sign-in; account tools take |
| Clients that sign in with OAuth 2.1 (claude.ai, ChatGPT and others): the same server, with OAuth required |
This repository is the source of that server: a Cloudflare Worker that is a thin adapter over the
Indian Opinion REST agent API (https://indianopinion.org/wp-json/io/v1). Every tool is one REST call
made with the caller's own credentials; there is no business logic or data store here beyond the OAuth
state. It also holds the OpenAPI 3.1 document, the
agents.txt and the MCP server card the Worker
serves, and setup guides for each client.
The command-line client and stdio bridge is IndianOpinion/cli
(npm i -g indianopinion).
Connect
Client | Guide | Method |
claude.ai, Claude Desktop and mobile | Custom connector, OAuth | |
ChatGPT | Custom MCP server (developer mode), OAuth | |
Claude Code |
| |
Cursor |
| |
Grok | Custom connector in the app; remote MCP tool in the xAI API | |
OpenClaw |
| |
Hermes Agent |
| |
Meta Muse | Not verified | |
Instinct | Not verified | |
Any other MCP client | Streamable HTTP URL | |
Agents without MCP | OpenAPI 3.1 over REST |
Related MCP server: test-newsapi-mcp
Tools
Fourteen tools. Lists default to 10 items and cap at 25. Every tool sets a title and all four annotation hints (read-only, destructive, idempotent, open-world).
Tool | Auth | What it does |
| public | Search published briefs by text, category and date, with cursor paging |
| public | One brief by id or article URL: summary, sources, corroboration and framing |
| public | Email a 6-digit sign-in code to an address |
| public | Exchange the email and code for an account token ( |
| account | The signed-in account: masked email, preferences, topics followed, recent Breaking News sends |
| account | Change digest format and hour, and Breaking News settings |
| account | Topics the account follows |
| account | Follow a topic, with an alert tier |
| account | Stop following a topic |
| account | The latest daily digest, or the one for a date |
| account | Recent Breaking News candidates and their scores |
| account | One Breaking News event in full |
| account | Stop the digest, Breaking News, topic alerts or all emails |
| account | A one-time, 10-minute link that signs a browser in to the account page |
Prompts: morning_briefing, explain_framing_gap, watch_topic, tune_breaking, brief_my_human.
Resources: indianopinion://about, indianopinion://brief/{id}, indianopinion://digest/{date}.
The OpenAPI operationId of each REST operation equals the MCP tool name.
Public tools and account tools
No sign-in.
search_briefs,get_brief,signup_startandsignup_verifywork onhttps://indianopinion.org/mcpwith no credentials.Bearer token. For account tools, sign up with
signup_startandsignup_verify(orindianopinion loginin the CLI) and send the returned token asAuthorization: Bearer ioa_.... Clients that can set a header use this on/mcp.OAuth 2.1. Clients that only accept OAuth or no auth (claude.ai, ChatGPT) use
https://indianopinion.org/mcp/oauth. A request without a token gets401withWWW-Authenticate: Bearer resource_metadata="https://indianopinion.org/.well-known/oauth-protected-resource/mcp/oauth". The server supports dynamic client registration (RFC 7591), the authorization code flow with PKCES256, rotating refresh tokens and revocation (RFC 7009). Sign-in is the same email code; the connector then appears as a token labelledoauth <client name>on the account, where it can be revoked.
Verifying an email address subscribes it to the daily digest; unsubscribe stops it. Tokens are never
logged; each tool call logs only the tool name, the public token id, the outcome and the latency.
Rate limits
Scope | Limit |
Requests to | 120 a minute |
| 20 a minute |
Account tool calls, per token | 60 a minute |
| 30 a minute |
| 60 a minute |
Sign-in codes (set by the API) | 3 an hour per address, 5 an hour per IP |
Request body | 16 KB (larger is |
A limited call returns a tool error with retry_after in seconds. The REST API's own limits are
authoritative; the Worker's limits sit in front of them.
Endpoints the Worker serves
Path | What |
| MCP over Streamable HTTP, stateless; the 2026-07-28 revision and the 2025 initialize handshake. |
| The same server with OAuth required |
| MCP server card (draft, SEP-2127) |
| agents.txt (community draft) |
| OpenAPI 3.1 of the REST API |
| CLI downloads and the Agent Skills file |
| RFC 9728 protected resource metadata |
| RFC 8414 authorization server metadata |
| OAuth 2.1 authorization server |
Develop
Node 22 or newer.
npm ci
npm test # Worker module in Node against a local REST stub; no networkTo serve the CLI files under /agents/cli/ as well, clone
IndianOpinion/cli next to this checkout as ../cli (or set
IO_CLI_DIR) and run npm run build:cli; the tests then also check those files.
To run the Worker on your own Cloudflare account, copy wrangler.example.toml to wrangler.toml,
fill in your account id and KV namespace id, and use npx wrangler dev. discovery/ holds the
agents.txt and server card exactly as src/discovery.js renders them; CI fails if they drift.
File | Role |
| Routing, guards, rate limits, MCP handler |
| MCP tools, prompts and resources |
| REST client |
| The only reader of credentials (bearer and OAuth) |
| OAuth 2.1 authorization server |
| Server card, agents.txt, CLI index |
| Text rendering of briefs and digests |
| Node test suites and the REST stub |
Contributing and security
See CONTRIBUTING.md and SECURITY.md. Report vulnerabilities to hello@indianopinion.org, not in public issues.
Licence
MIT. Indian Opinion content returned by the API is not covered by this licence; see https://indianopinion.org/agents/ for its terms of use.
This server cannot be deployed
Maintenance
Related MCP Connectors
Free cross-lingual news briefings for AI agents across 89 languages. Read-only, hosted.
- drishtiOAuthin.getdrishti
Indian media intelligence — bilingual sentiment, Tier 1 credibility, story clustering.
Real-time corroborated news events + 5-year archive, for agents. Free tier, no key.
Agents that watch the sources you approve and write cited Briefs, from your AI tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAggregates news from 7 APIs and unlimited RSS feeds with AI-powered bias removal and synthesis. Provides over 7,300 free daily requests with conversation-aware caching and 25 comprehensive news analysis tools.1-
- FlicenseNot gradedqualityDmaintenanceProvides AI agents access to news aggregation from 80,000+ sources via the NewsAPI. Supports both authenticated access with API keys and pay-per-use via HTTP 402 protocol with blockchain payment verification.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and retrieve real-time news from 40 curated sources with micropayment-based access (USDC on Base). Provides both paid (search, headlines) and free (preview, status) tools for up-to-date information.51 npmMIT

newspaper-mcpofficial
AlicenseNot gradedqualityCmaintenanceEnables LLM agents to discover news sources, list articles, parse and extract article text, search news, and perform NLP analysis such as keyword extraction and summarization.MIT