Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/hangingcontext-com:hangingcontext-com-mcp-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Hanging Context public read MCP API
version: 1.0.0
summary: Free, keyless JSON, Markdown and feeds for Hanging Context stories.
description: 'Hanging Context publishes fresh context for agents. Stories are rebuilt every 12 hours. Each claim cites a Synorb Manifest. Every endpoint here is a read. No key is necessary. The same stories are also available through the MCP server at https://hangingcontext.com/mcp. Version policy: Breaking changes ship as a new version. We announce them at least 90 days ahead with Deprecation and Sunset response headers on the old version, and on the /developers page. Paging uses a cursor. Each REST list holds every story of its window, so the REST files have no cursor. To get only the stories that are new since your last call, call the MCP tool hc_since. It returns next_cursor and has_more, and you send next_cursor in your next call. Rate limit: 60 calls per 60 seconds per IP address for /ask and MCP tool calls.'
termsOfService: https://hangingcontext.com/terms/reuse/
contact:
name: Hanging Context
email: team@synorb.com
url: https://hangingcontext.com/contact/
license:
name: Hanging Context reuse terms
url: https://hangingcontext.com/terms/reuse/
x-api-version: '1'
x-sdks:
- ecosystem: npm
language: JavaScript
package: hanging-context
version: 0.1.0
url: https://www.npmjs.com/package/hanging-context
install: npm install hanging-context
cli: hanging-context
- ecosystem: pypi
language: Python
package: hanging-context
version: 0.1.0
url: https://pypi.org/project/hanging-context/
install: pip install hanging-context
cli: hanging-context
x-pagination:
style: cursor
tool: hc_since
cursor_field: next_cursor
more_field: has_more
note: Paging uses a cursor. Each REST list holds every story of its window, so the REST files have no cursor. To get only the stories that are new since your last call, call the MCP tool hc_since. It returns next_cursor and has_more, and you send next_cursor in your next call.
servers:
- url: https://hangingcontext.com
description: Production
security: []
tags:
- name: MCP
description: The MCP server.
paths:
/mcp:
get:
operationId: getMcpInfo
tags:
- MCP
summary: Get the MCP connection details
description: 'A plain GET returns JSON that explains how to connect to the MCP server. A GET with Accept: text/event-stream and a session id opens the notification stream instead.'
responses:
'200':
description: How to connect.
content:
application/json:
schema:
$ref: '#/components/schemas/McpInfo'
headers:
HC-API-Version:
$ref: '#/components/headers/HC-API-Version'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
parameters:
- $ref: '#/components/parameters/ApiVersion'
post:
operationId: callMcp
tags:
- MCP
summary: Send an MCP JSON-RPC message
description: Send an MCP message over Streamable HTTP. Send initialize first. The tools are hc_ask, hc_latest, hc_since, hc_search, hc_get_story, hc_sources, hc_topics, hc_about.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
responses:
'200':
description: The JSON-RPC response, as JSON or as text/event-stream.
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcResponse'
text/event-stream:
schema:
type: string
headers:
HC-API-Version:
$ref: '#/components/headers/HC-API-Version'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
'400':
description: The request is not valid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
HC-API-Version:
$ref: '#/components/headers/HC-API-Version'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
'429':
description: Too many calls from this address. Wait, then call again.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
HC-API-Version:
$ref: '#/components/headers/HC-API-Version'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
Retry-After:
$ref: '#/components/headers/Retry-After'
'500':
description: The server could not answer. Try again later.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
HC-API-Version:
$ref: '#/components/headers/HC-API-Version'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
parameters:
- $ref: '#/components/parameters/ApiVersion'
components:
headers:
Retry-After:
description: Seconds to wait before you call again.
schema:
type: integer
RateLimit-Policy:
description: The limit policy, for example "hc-public";q=60;w=60 (60 calls per 60 seconds).
schema:
type: string
HC-API-Version:
description: The API version of this response.
schema:
type: string
example: '1'
schemas:
McpInfo:
type: object
description: How to connect to the MCP server. A plain GET to /mcp returns this.
required:
- name
- endpoint
- transport
- tools
properties:
name:
type: string
example: com.hangingcontext/mcp
title:
type: string
description:
type: string
version:
type: string
endpoint:
type: string
format: uri
transport:
type: string
example: streamable-http
authentication:
type: object
properties:
required:
type: boolean
how_to_connect:
type: array
items:
type: string
tools:
type: array
items:
type: string
server_card:
type: string
format: uri
api_version:
type: string
additionalProperties: true
JsonRpcResponse:
type: object
description: A JSON-RPC 2.0 response from the MCP server.
required:
- jsonrpc
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
type:
- string
- integer
- 'null'
result:
type: object
additionalProperties: true
error:
type: object
properties:
code:
type: integer
message:
type: string
JsonRpcRequest:
type: object
description: A JSON-RPC 2.0 request for the MCP server.
required:
- jsonrpc
- method
properties:
jsonrpc:
type: string
enum:
- '2.0'
id:
type:
- string
- integer
method:
type: string
example: initialize
params:
type: object
additionalProperties: true
Error:
type: object
description: The JSON error body.
required:
- error
- message
properties:
error:
type: string
description: A short error code.
example: empty_question
message:
type: string
description: What is wrong.
next_step:
type: string
description: What to do next.
retry_after:
type: integer
description: Seconds to wait. Only for code 429.
parameters:
ApiVersion:
name: HC-API-Version
in: header
required: false
description: The API version you expect. Version 1 is the only version today. Every response carries the HC-API-Version header.
schema:
type: string
enum:
- '1'
default: '1'
externalDocs:
description: 'Hanging Context developers: the MCP server, the SDKs and the CLI, rate limits and errors.'
url: https://hangingcontext.com/developers/