ALL SYSTEMS LIVE·CURRENT PUBLIC CATALOGUE
DATA WITH RECEIPTS · ED25519 · RFC 3161·--:--:-- UTC
keyless · one URL pattern · focused collections

Plug Dynamic Feed into any agent.

One remote MCP endpoint gives an agent the current public catalogue of live evidence tools. Successful responses expose named sources, observation times and freshness; supported receipt paths also issue signed receipts.

Remote MCP: https://dynamicfeed.ai/mcp , auto-detects Streamable HTTP & legacy SSE. No API key.

MCP clients, one config

Claude Desktop, Cursor, Cline, Windsurf and any MCP client. Add this and restart:

{
  "mcpServers": {
    "dynamic-feed": { "url": "https://dynamicfeed.ai/mcp" }
  }
}

Prefer a local command? (firewalls/VPNs that block remote streams)

npx -y dynamicfeed-mcp        # Node
uvx dynamicfeed-mcp           # Python

Use a focused MCP collection

Use /mcp when an agent needs the full public catalogue. For a narrower job, point the same client configuration at one centrally defined collection:

https://dynamicfeed.ai/mcp/security
https://dynamicfeed.ai/mcp/weather
https://dynamicfeed.ai/mcp/space
https://dynamicfeed.ai/mcp/infrastructure
https://dynamicfeed.ai/mcp/ai-models
https://dynamicfeed.ai/mcp/evidence

A smaller catalogue sends fewer tool descriptions into the model context. That can reduce prompt-token use and tool-selection ambiguity. Collections are filtered views of the same canonical registry, not separate copied servers; /mcp continues to expose the full public catalogue.

Frameworks

LangChain, langchain-mcp-adapters

from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({"dynamic-feed": {
    "url": "https://dynamicfeed.ai/mcp", "transport": "streamable_http"}})
tools = await client.get_tools()

LlamaIndex, llama-index-tools-mcp

from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
spec = McpToolSpec(client=BasicMCPClient("https://dynamicfeed.ai/mcp"))
tools = await spec.to_tool_list_async()

Vercel AI SDK (v6), @ai-sdk/mcp

import { createMCPClient } from '@ai-sdk/mcp';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport(new URL('https://dynamicfeed.ai/mcp'));
const mcp = await createMCPClient({ transport });
const tools = await mcp.tools();

OpenAI Agents SDK

from agents.mcp import MCPServerStreamableHttp
server = MCPServerStreamableHttp(params={"url": "https://dynamicfeed.ai/mcp"})

Pydantic AI

from pydantic_ai.mcp import MCPServerStreamableHTTP
server = MCPServerStreamableHTTP("https://dynamicfeed.ai/mcp")

ChatGPT / Custom GPT, Actions

In the GPT builder → Create new actionImport from URL, paste the agent-ready OpenAPI. Every operation is a GET flagged non-consequential (no confirmation prompts).

https://dynamicfeed.ai/openapi-agent.json

REST API

Prefer plain HTTP? The keyless batch sandbox accepts small, read-only test batches at /v1/batch. Documented direct REST routes use X-API-Key for keyed access.

curl -s https://dynamicfeed.ai/v1/batch \
  -H 'Content-Type: application/json' \
  -d '{"calls":[{"tool":"current_weather","args":{"city":"Tokyo"}}]}'

Access policy

InterfaceEndpointAccessUseLimit
MCP/mcpKeylessPublic read-only accessNo per-key quota; subject to service availability
REST batch/v1/batchKeylessTesting and low-volume read-only batch accessMaximum 20 calls per request
Direct RESTDocumented keyed routesX-API-KeyDirect endpoint access with usage accountingPlan quota applies
x402/v1/pro/*x402 paymentMachine-paid access on eligible premium endpointsPer-call terms are returned with HTTP 402
Enterprise/enterpriseCommercial termsDiscuss operating, support, and integration requirementsPublished or agreed service terms apply