Oblique Markets
REMOTE · API.OBLIQUE.MARKETS · SCANNED SEP 29
x402-paid analytics, market intelligence, research, and LLM inference for AI agents.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security49
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 79 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 7363 tokens (~93/item across 79 items; 79 tools + 0 resources), lean.Pass
- Tools include usage examples.Pass
Stability & Change Management92
- Stability check failed: schema churn in the 30 days we've observed: 5 tool removals, 0 breaking changes, 0 auth/transport breaks, 22 additions. See how to fix → Fail
Tool Coverage81
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 42% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "base_transfer_search_rpc" implies "transfer" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 79 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
How do I install the Oblique Markets MCP server?
Oblique Markets is a hosted endpoint at https://api.oblique.markets/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.oblique.markets
claude mcp add --transport http markets-oblique-api-oblique-markets 'https://api.oblique.markets/mcp'
{
"mcpServers": {
"markets-oblique-api-oblique-markets": {
"url": "https://api.oblique.markets/mcp"
}
}
} {
"servers": {
"markets-oblique-api-oblique-markets": {
"type": "http",
"url": "https://api.oblique.markets/mcp"
}
}
} [mcp_servers.markets-oblique-api-oblique-markets] url = "https://api.oblique.markets/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"markets-oblique-api-oblique-markets": {
"type": "remote",
"url": "https://api.oblique.markets/mcp",
"enabled": true
}
}
} openclaw mcp add markets-oblique-api-oblique-markets --url 'https://api.oblique.markets/mcp' --transport streamable-http
mcp_servers:
markets-oblique-api-oblique-markets:
url: "https://api.oblique.markets/mcp" {
"McpServers": {
"markets-oblique-api-oblique-markets": {
"Transport": "http",
"Url": "https://api.oblique.markets/mcp"
}
}
} assistant mcp add markets-oblique-api-oblique-markets -t streamable-http -u 'https://api.oblique.markets/mcp'
{
"mcpServers": {
"markets-oblique-api-oblique-markets": {
"type": "http",
"url": "https://api.oblique.markets/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 −1
No change was recorded against any check on this day. Stability & Change Management went from 97 to 93.
- 13 Sept 26 0
- New tool “proxy_implementation” functional
- 12 Sept 26 +1
- Tool “agentcore_route” rewrote its description, which is the text the model reads security
- Tool “bazaar_listing_lint” rewrote its description, which is the text the model reads security
- Tool “browser_evidence” rewrote its description, which is the text the model reads security
- Tool “chat_completion” rewrote its description, which is the text the model reads security
- Tool “gleif_resolve” rewrote its description, which is the text the model reads security
- Tool “inference” rewrote its description, which is the text the model reads security
- Tool “market_intel” rewrote its description, which is the text the model reads security
- Tool “people_search” rewrote its description, which is the text the model reads security
- Tool “profile_search” rewrote its description, which is the text the model reads security
- Tool “trading_signals” rewrote its description, which is the text the model reads security
- Tool “tweets_search” rewrote its description, which is the text the model reads security
- Tool “wallet_analyze” rewrote its description, which is the text the model reads security
- Tool “web_search” rewrote its description, which is the text the model reads security
- Tool “x402_endpoint_verify” rewrote its description, which is the text the model reads security
- Tool “x402_facilitator_health” rewrote its description, which is the text the model reads security
- “people_enrich” reworded the description of “linkedin_url” cosmetic
- “people_record_normalize” reworded the description of “linkedin_url” cosmetic
- “sentiment” reworded the description of “topic” cosmetic
- 11 Sept 26 0
- A breaking change shipped without a version bump: still 1.1.0 ▼ security
- Tool “pdl_people_enrich” was removed ▼ security
- Tool “rep_agi_prepaid_tokens” was removed ▼ security
- Tool “rep_cheaptokens_buy” was removed ▼ security
- Tool “rep_linkedpanda_search” was removed ▼ security
- Tool “rep_stableenrich_people_enrich” was removed ▼ security
- Tool “rep_stableenrich_people_search” was removed ▼ security
- Tool “rep_stableenrich_search” was removed ▼ security
- Tool “seats_aero_search” was removed ▼ security
- Tool “base_transfer_search” rewrote its description, which is the text the model reads security
- Tool “payer_profile” rewrote its description, which is the text the model reads security
- New tool “award_flight_search” functional
- New tool “chat_completion” functional
- New tool “people_enrich” functional
- New tool “people_record_normalize” functional
- New tool “people_search” functional
- New tool “prepaid_access_token” functional
- New tool “profile_search” functional
- New tool “web_search” functional
- 10 Sept 26 0
- New tool “payer_profile” functional
- 9 Sept 26 0
- Tool “x402_facilitator_health” rewrote its description, which is the text the model reads security
- New tool “run_python” functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 29 Sept 2026 · Probed https://api.oblique.markets/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=oblique.markets | CN=WE1,O=Google Trust Services,C=US | 21 Sept 2026 | 20 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | bfea2cc93e21ad7e1310ca98e876ab56 |
| SANs: oblique.markets, *.oblique.markets | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of api.oblique.markets. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| markets. | present | 58144 | 8 | Verified |
| oblique.markets. | present | 2371 | 13 | Verified |
| api.oblique.markets. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.oblique.markets/mcp | Verified | 200 | |
| http (plaintext) | http://api.oblique.markets/mcp | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
prepaid_access_token ~42
Purchase an Oblique-controlled prepaid HTTP-data access token in one machine-friendly POST. $1.00/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| input | object | yes | – |
No output schema declared.
No examples provided.
profile_search ~149
Search professional profiles using bounded public-reference data, with paging and normalized name/headline/company/location fields; private profile fields Oblique does not hold are explicitly null. $0.30/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| currentCompany | string | – | – |
| firstName | string | – | – |
| followerOf | string | – | – |
| geoId | string | – | – |
| industryId | string | – | – |
| lastName | string | – | – |
| location | string | – | – |
| page | integer | – | – |
| pastCompany | string | – | – |
| requestContext | object | – | – |
| school | string | – | – |
| search | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
proxy_implementation ~237
Is this contract an upgradeable proxy, and where does its current code live? Returns the proxy standard, implementation, admin and beacon addresses, whether the implementation has code, and the storage slots and block read. Base, Ethereum and major L2s; optional raw storage slots decoded. $0.003/call via x402 (Base or Solana) or MPP. Also GET with query parameters. Free worked example: GET /api/v1/proxy-implementation/example.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Contract address to inspect, 0x plus 40 hex characters (any case). |
| block | string | – | 'latest' (default) or a decimal block number; explicit blocks are immutable and cached longer. |
| chain | string | – | Chain name (base, ethereum, optimism, arbitrum, polygon) or chain id (8453, 1, 10, 42161, 137). Default base. |
| slots | array | – | Up to 4 extra raw storage slots to read and decode: each a 0x bytes32 or a decimal slot number. GET accepts a comma-separated list. |
No output schema declared.
No examples provided.
purchase_web_extraction_sample ~54
Buy a bounded machine-readable extraction sample from one HTTPS webpage. $0.01/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | yes | – |
| url | string | yes | HTTPS page to extract |
No output schema declared.
No examples provided.
purchase_website_decision_packet ~63
Extract and synthesize supplied web pages into a cited decision packet with structured JSON findings. $0.05/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | yes | – |
| question | string | yes | – |
| urls | array | yes | – |
No output schema declared.
No examples provided.
reprice_regret ~320
Did a price change on an x402 Bazaar listing pay off? Give one listing's resource_url or a seller_payto address (25 listings per page) and a window_days (7–90, default 30): replays the reported price history from daily snapshots, marks every repricing event with 30d calls and payers before and after it, computes each event's revenue counterfactual in USDC on the observed post-change volume with a one-line verdict, and compares against peers sharing the listing's first tag. Free example: GET /api/v1/reprice-regret/example. $0.01/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque paging cursor from a previous seller_payto response. |
| network | string | – | Optional CAIP-2 network filter, e.g. 'eip155:8453' or 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d'. |
| resource_url | string | – | One listing: the resource URL exactly as the x402 Bazaar reports it (http/https). Mutually exclusive with seller_payto. |
| seller_payto | string | – | All listings paid to this address (the payTo the Bazaar reports); up to 25 per page with a cursor. Mutually exclusive with resource_url. |
| window_days | integer | – | How many snapshot days back from the latest snapshot to replay (7–90, default 30). |
No output schema declared.
{"resource_url":"https://x402.shizu.me/crypto"} research_answer ~119
Answer a concise research question from one bounded web search: cited answer, source URLs/labels with retrieval timestamps, honest insufficient-evidence refusal, and a receipt of the upstream cost. Optional domain scope and freshness. $0.01/call via x402. Free preview of the shape: GET /api/v1/research-answer/preview.
| Name | Type | Req | Description |
|---|---|---|---|
| freshness | string | – | Only sources from the last day/week/month/year |
| max_sources | integer | – | – |
| question | string | yes | One concise research question |
| scope | object | – | – |
No output schema declared.
No examples provided.
rewrite_text ~91
Rewrite text to match an instruction — change tone, formality, length, or reading level ("make it formal", "simplify for a 10-year-old") with deterministic output. $0.005/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| instruction | string | yes | Rewrite instruction, e.g. "make it formal" |
| text | string | yes | Text to rewrite (truncated to 8,000 characters) |
No output schema declared.
No examples provided.
route_task ~98
Route protocol, market-activity, and paid-service discovery tasks through Agent Economy read-only MCP data, preserving free top-one and paid ranked top-three results with evidence timestamps and qualified handoff sessions. $0.01/call via x402 (free tier: 3 queries/day/wallet, returns top-1 result only).
| Name | Type | Req | Description |
|---|---|---|---|
| constraints | object | – | – |
| seller_delivery_receipt | object | – | – |
| task | string | yes | – |
No output schema declared.
No examples provided.
run_python ~251
Run a short Python program in an isolated sandbox and get back exit code, stdout, stderr, duration and up to 3 artifact files from ./out/. Python 3.12 + numpy/pandas/requests, no network, 512 MB, 30 s max, 32 KB code, 4 input files of 256 KB. Free compile-only syntax check first at POST /api/v1/run-python/validate. $0.05/call (one run) via x402. Free syntax check: POST /api/v1/run-python/validate. Free worked example: GET /api/v1/run-python/example.
| Name | Type | Req | Description |
|---|---|---|---|
| args | array | – | Command-line arguments (sys.argv[1:]), at most 16. |
| code | string | yes | Python 3 program source, at most 32 KB. Runs as main.py in an empty working directory. |
| files | array | – | Up to 4 input files written into the working directory before the run. |
| stdin | string | – | Text piped to the program on standard input (at most 32 KB). |
| timeout_s | number | – | Wall-clock limit for the program in seconds (default 15, max 30). |
No output schema declared.
No examples provided.
sentiment ~62
Sentiment analysis of a supplied block of text, or of current coverage of a named topic. $0.05/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | – | Text to score directly |
| topic | string | – | Topic to gather and score instead of text |
No output schema declared.
No examples provided.
server_time ~48
Current server time as ISO 8601 plus Unix epoch, returned only after settlement — the smallest end-to-end probe of the x402 payment path. $0.01/call via x402.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
settlement_verify ~110
Verify an x402 settlement actually landed on Base mainnet: real JSON-RPC receipt lookup, decoded USDC Transfer events with payer/payee/amount, success-or-reverted status, confirmation count, and a stored verification_id you can re-fetch later as a receipt. $0.01/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| chain_id | integer | – | Chain id (only 8453, Base mainnet, is supported) |
| tx_hash | string | yes | Transaction hash to verify on Base mainnet |
No output schema declared.
No examples provided.
solana_ops_context ~69
Operational context check meant to be called on every run: current UTC time plus the latest x402 Bazaar pulse, with source evidence and whether this wallet has called before. $0.005/call via MPP (Tempo), x402 Solana, or x402 Base; repeat calls welcome.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
solana_priority_fee ~121
Current Solana slot, block height and block time plus a prioritization-fee summary (min, median, p75, max, suggested) over the recent slots the public RPC reports; optionally scoped to up to five writable accounts. $0.002/call via x402 (Solana or Base) or MPP (Tempo); repeat calls welcome, readings cached 8 s.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | string | – | Optional: up to 5 comma-separated base58 pubkeys; the fee sample is then limited to transactions that lock these accounts writable. |
No output schema declared.
No examples provided.
summarize_text ~79
Summarize any text as bullet points, a paragraph, or a one-liner — deterministic (temperature 0) flash-model summarization sized for agent pipelines. $0.008/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | – | Output shape |
| text | string | yes | Text to summarize (truncated to 8,000 characters) |
No output schema declared.
No examples provided.
token_flow_activity ~218
Recent Solana token-flow activity for one wallet or token mint: per-transaction token balance deltas with direction, counterparties, an activity read (transfer, swap, mint_burn) and RPC provenance, over a bounded window. $0.02/call via x402 (Solana or Base) or MPP; repeat calls are cache-backed.
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | – | Keep only transactions of this read: transfer, swap (a public DEX program was involved), mint_burn. |
| address | string | yes | Solana wallet owner or token mint (base58). |
| before | string | – | Signature cursor from a previous response (cursor.before) to page further back. |
| direction | string | – | For a wallet subject: keep transactions where the wallet received (in) or sent (out) tokens. |
| limit | integer | – | Most recent transactions scanned; filters apply within them. Page with cursor.before. |
| mint | string | – | Keep only transactions that moved this mint. |
| window_hours | integer | – | – |
No output schema declared.
No examples provided.
token_metrics ~58
Get free-source token price, TVL, DEX volume, fees and yield metrics. $0.003/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | – |
| symbol | string | – | – |
| token_address | string | yes | – |
No output schema declared.
No examples provided.
trading_signals ~55
Return a bounded, transparent DEX-volume trading signal from public DEX volume, TVL and fee data. $0.005/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | – |
| symbol | string | – | – |
No output schema declared.
No examples provided.
tweets_search ~93
Search publicly indexed social posts using words, phrases, hashtags, account and date filters; returns bounded tweet-like results with source links. $0.005/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | – |
| hashtags | string | – | – |
| phrase | string | – | – |
| since | string | – | – |
| to | string | – | – |
| until | string | – | – |
| words | string | – | – |
No output schema declared.
No examples provided.
us_equity_snapshot ~78
Fetch fresh OHLCV candles for one US ticker with optional technical indicators and source/freshness evidence. $0.01/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| indicators | array | – | – |
| interval | string | yes | – |
| lookback | integer | yes | – |
| ticker | string | yes | One US-listed ticker, uppercase letters only. |
No output schema declared.
No examples provided.
wallet_analyze ~48
Analyze a Base wallet: balances, bounded transfers, token holdings and counterparties from a public explorer index. $0.005/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| wallet_address | string | yes | – |
No output schema declared.
No examples provided.
wallet_spy ~64
Inspect an EVM wallet for recent transactions, token flows, DEX swaps, NFT activity, counterparties and a heuristic risk score. $0.03/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | EVM wallet address |
| chain | string | – | – |
No output schema declared.
No examples provided.
web_extract ~57
Extract structured JSON from a web page: return URL, title, meta description, cleaned text, extraction timestamp, and payment status for agent workflows. $0.03/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Page to extract |
No output schema declared.
No examples provided.
web_search ~67
Run a bounded web search over a public encyclopedic reference index: title, URL and snippet per hit, with paging and a total count. $0.01/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
x401_batch_extract ~74
Verify an x401 proof and extract JSON from up to 10 public URLs in isolated compute with an idempotent reconciled manifest. $0.02/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | yes | – |
| items | array | yes | – |
| x401_proof | object | yes | – |
No output schema declared.
No examples provided.
x402_endpoint_verify ~112
Point it at any URL that claims to sell over x402 and get a conformance verdict: does it actually return a 402, is the challenge valid v2 JSON, are the payment requirements complete, is the price above the facilitator settlement floor, and does the PAYMENT-REQUIRED header match the body. $0.02/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| method | string | – | HTTP method the endpoint sells on |
| url | string | yes | The https URL of the x402 endpoint to verify |
No output schema declared.
No examples provided.
x402_facilitator_health ~80
Is the x402 payment rail up right now? Parallel live probes of the two facilitators most production x402 settlement runs through: supported kinds, schemes and networks from one, reachability, HTTP status and latency from the other, which is the one this service settles both its rails through. $0.003/call via x402.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
x402_receipt_lookup ~72
Retrieve a stored settlement-verify receipt by its verification_id — the durable record of an on-chain USDC settlement check (payer, payee, amount, status) issued by settlement_verify. $0.002/call via x402.
| Name | Type | Req | Description |
|---|---|---|---|
| verification_id | string | yes | UUID returned by settlement_verify |
No output schema declared.
No examples provided.
What is the Oblique Markets MCP server?
Oblique Markets is an MCP server listed in the public MCP registry as markets.oblique.api/oblique-markets. x402-paid analytics, market intelligence, research, and LLM inference for AI agents. This page covers its hosted endpoint (https://api.oblique.markets/mcp).
Is the Oblique Markets MCP server safe to use?
Oblique Markets scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Oblique Markets MCP server expose?
Oblique Markets exposes 79 tools: server_time, echo, web_extract, sentiment, company_research, and 74 more. Their descriptions and schemas cost roughly 7,363 tokens of context every time the server is loaded.
Does the Oblique Markets MCP server require authentication?
No. We connected to Oblique Markets without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Oblique Markets MCP server still maintained?
Oblique Markets is still listed as active in the MCP registry. We last reached this channel on 29 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.