MCP Server

a9n9 Deep Research

net.a9n9/deep-research
Search & Research Public & reachable MCP 2026-07-28

What this MCP does

Provides free quick searches and paid browser-based research reports synthesized from news and scholarly sources.

a9n9_quick_search
Free Quick Search
Free first-level search, limited per day across all callers: current news coverage (100+ languages, 250K+ sources) or scholarly papers (arXiv). Returns structured results immediately with no payment. When the daily quota is exhausted, or when you need live browsing and synthesis across sources, use a9n9_research_quote for paid deep research.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 500, 'minLength': 3}, 'domain': {'enum': ['news', 'papers'], 'type': 'string', 'description': 'news (default): global news articles. papers: arXiv preprints.'}, 'payer_address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Optional Tempo payer address so free usage counts toward loyalty pricing on paid research.'}}, 'additionalProperties': False}
a9n9_research_quote
Quote Deep Research
Analyze a deep-research objective and return the exact current price, limits, planned start URLs, request hash, expiry, payment requirements, and cloud-browser capabilities without charging or starting a job. targetUrl is optional: omit it and the quote derives and binds a bounded plan of public start URLs from the objective.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['objective', 'job_key'], 'properties': {'job_key': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'description': "job_key identifies a research session. Reuse it with a new objective to run a follow-up iteration that references the session's prior results (each iteration is a separate paid job); an identical request retries idempotently. Sessions are referenceable for 7 days, then results are cleared."}, 'objective': {'type': 'string', 'maxLength': 2000, 'minLength': 10}, 'targetUrl': {'type': 'string', 'format': 'uri', 'description': 'Optional public HTTPS focus hint; when omitted the service plans up to 5 public start URLs from the objective and binds them into the quote.'}, 'payer_address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Optional Tempo payer address for loyalty pricing: 10% off after $2.00 of reconciliation-confirmed on-chain spend from that address. Settlement must then come from it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['quoteId', 'requestBodyHash', 'tier', 'price', 'currency', 'network', 'chainId', 'expiresAt', 'limits', 'cloudBrowser', 'payment', 'paymentChallenge', 'walletPayment', 'nextStep'], 'properties': {'tier': {'enum': ['quick', 'standard', 'deep']}, 'price': {'type': 'string'}, 'limits': {'type': 'object'}, 'chainId': {'const': 4217}, 'network': {'const': 'tempo-mainnet'}, 'payment': {'type': 'object'}, 'quoteId': {'type': 'string'}, 'currency': {'const': 'USDC.e'}, 'nextStep': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'rationale': {'type': 'string'}, 'cloudBrowser': {'type': 'object'}, 'walletPayment': {'type': 'object'}, 'requestBodyHash': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'paymentChallenge': {'type': 'object'}}}
a9n9_research_start
Start Paid Deep Research
Start bounded paid research in a real remotely hosted Browserbase Chromium session with JavaScript rendering, DOM interaction, scrolling, and dynamic-content extraction, followed by gpt-5.6-luna synthesis. targetUrl is optional; without it the quoted plan of public start URLs derived from the objective is executed. Call a9n9_research_quote first when price visibility is needed. The service does not bypass CAPTCHAs, logins, paywalls, access controls, or site terms.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['objective', 'job_key'], 'properties': {'job_key': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'description': "job_key identifies a research session. Reuse it with a new objective to run a follow-up iteration that references the session's prior results (each iteration is a separate paid job); an identical request retries idempotently. Sessions are referenceable for 7 days, then results are cleared."}, 'objective': {'type': 'string', 'maxLength': 2000, 'minLength': 10}, 'targetUrl': {'type': 'string', 'format': 'uri', 'description': 'Optional public HTTPS focus hint; when omitted the service plans up to 5 public start URLs from the objective and binds them into the quote.'}, 'notify_email': {'type': 'string', 'format': 'email', 'description': 'Optional: email the completed report to this address from a9n9@agentmail.to. Delivery preference only; not part of the payment-bound request hash.'}, 'payer_address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$', 'description': 'Optional Tempo payer address for loyalty pricing: 10% off after $2.00 of reconciliation-confirmed on-chain spend from that address. Settlement must then come from it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['trackerCode', 'status', 'progressPercent', 'progressStage'], 'properties': {'error': {'type': 'string'}, 'result': {'type': 'object'}, 'status': {'enum': ['in_progress', 'completed', 'failed']}, 'quoteId': {'type': 'string'}, 'createdAt': {'type': 'string'}, 'statusUrl': {'type': 'string'}, 'trackerCode': {'type': 'string'}, 'progressStage': {'type': 'string'}, 'progressPercent': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'requestBodyHash': {'type': 'string'}}}
a9n9_research_status
Get Research Status
Return milestone progress and the final result for an opaque tracker code.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['trackerCode'], 'properties': {'trackerCode': {'type': 'string', 'pattern': '^trk_[a-f0-9]{32}$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['trackerCode', 'status', 'progressPercent', 'progressStage'], 'properties': {'error': {'type': 'string'}, 'result': {'type': 'object'}, 'status': {'enum': ['in_progress', 'completed', 'failed']}, 'quoteId': {'type': 'string'}, 'createdAt': {'type': 'string'}, 'statusUrl': {'type': 'string'}, 'trackerCode': {'type': 'string'}, 'progressStage': {'type': 'string'}, 'progressPercent': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'requestBodyHash': {'type': 'string'}}}
a9n9_research_submit_payment
Submit External Wallet Payment
Verify a separately broadcast Tempo mainnet push-mode payment and continue the quoted research job. Use the paymentChallenge and walletPayment returned by a9n9_research_quote, then provide the transaction hash, payer address, and same job_key.
Open world Idempotent
Input schema
{'type': 'object', 'required': ['job_key', 'transaction_hash', 'payer_address', 'payment_challenge'], 'properties': {'job_key': {'type': 'string', 'maxLength': 128, 'minLength': 8}, 'notify_email': {'type': 'string', 'format': 'email', 'description': 'Optional: email the completed report to this address from a9n9@agentmail.to.'}, 'payer_address': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{40}$'}, 'transaction_hash': {'type': 'string', 'pattern': '^0x[a-fA-F0-9]{64}$'}, 'payment_challenge': {'type': 'object', 'description': 'Unmodified paymentChallenge returned by a9n9_research_quote.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['trackerCode', 'status', 'progressPercent', 'progressStage'], 'properties': {'error': {'type': 'string'}, 'result': {'type': 'object'}, 'status': {'enum': ['in_progress', 'completed', 'failed']}, 'quoteId': {'type': 'string'}, 'createdAt': {'type': 'string'}, 'statusUrl': {'type': 'string'}, 'trackerCode': {'type': 'string'}, 'progressStage': {'type': 'string'}, 'progressPercent': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'requestBodyHash': {'type': 'string'}}}
Added
a9n9_research_status
Sept. 17, 2026, 12:54 p.m.
Added
a9n9_research_submit_payment
Sept. 17, 2026, 12:54 p.m.
Added
a9n9_research_start
Sept. 17, 2026, 12:54 p.m.
Added
a9n9_research_quote
Sept. 17, 2026, 12:54 p.m.
Added
a9n9_quick_search
Sept. 17, 2026, 12:54 p.m.