Skip to the content
Agent Tools

Agent SDK snippets

Point your own agent at one remote MCP server. The server needs no key and nothing runs on our side. Each snippet below was run against CVE Risk Check on 2026-10-21.

Connection
Streamable HTTP
API key
None needed
Rate limit
60 calls a minute
Protocol
MCP 2024-11-05
Server
https://cve.openkrill.app/mcp
Transport
Streamable HTTP
Key
None

OpenAI Agents SDK, Python

The SDK connects to a remote MCP server over streamable HTTP and offers its tools to the agent.

pip install openai-agents
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp


async def main():
    async with MCPServerStreamableHttp(
        name="cve",
        params={"url": "https://cve.openkrill.app/mcp"},
        cache_tools_list=True,
    ) as server:
        agent = Agent(
            name="Security assistant",
            instructions="Answer using the available tools.",
            mcp_servers=[server],
        )
        result = await Runner.run(agent, "How bad is CVE-2021-44228?")
        print(result.final_output)


asyncio.run(main())
Test it
How bad is CVE-2021-44228?
Expect tool
check_cve

Python 3.10 or newer and an OpenAI key in OPENAI_API_KEY for the model. Checked with openai-agents 0.23.1.

LangChain MCP adapters

The adapters turn every tool on the server into a LangChain tool, so any LangChain agent can call it.

pip install langchain langchain-mcp-adapters langchain-openai
import asyncio
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient


async def main():
    client = MultiServerMCPClient({
        "cve": {
            "url": "https://cve.openkrill.app/mcp",
            "transport": "streamable_http",
        }
    })
    tools = await client.get_tools()
    agent = create_agent("openai:gpt-4.1", tools)
    result = await agent.ainvoke(
        {"messages": [{"role": "user", "content": "How bad is CVE-2021-44228?"}]}
    )
    print(result["messages"][-1].content)


asyncio.run(main())
Test it
How bad is CVE-2021-44228?
Expect tool
check_cve

Python 3.10 or newer and a key for the chat model you pick; any LangChain chat model works. Checked with langchain 1.4.4 and langchain-mcp-adapters 0.3.2.

OpenAI Agents SDK, TypeScript

The same SDK in TypeScript. Connect the server once, pass it to the agent, and close it when the run ends.

npm install @openai/agents zod
import { Agent, MCPServerStreamableHttp, run } from "@openai/agents";

const server = new MCPServerStreamableHttp({
  name: "cve",
  url: "https://cve.openkrill.app/mcp",
});
await server.connect();
try {
  const agent = new Agent({
    name: "Security assistant",
    instructions: "Answer using the available tools.",
    mcpServers: [server],
  });
  const result = await run(agent, "How bad is CVE-2021-44228?");
  console.log(result.finalOutput);
} finally {
  await server.close();
}
Test it
How bad is CVE-2021-44228?
Expect tool
check_cve

Node 22 and an OpenAI key in OPENAI_API_KEY for the model. Save it as an .mjs file. Checked with @openai/agents 0.20.0.

Check the connection without a model

To test the server before you spend a model call, list its tools and call one directly. This is how each snippet above was checked: the call returns the same answer the agent would read. In Python, inside main():

async with MCPServerStreamableHttp(
    name="cve", params={"url": "https://cve.openkrill.app/mcp"}
) as server:
    print([tool.name for tool in await server.list_tools()])
    result = await server.call_tool(
        "check_cve", {"cve": "CVE-2021-44228"}
    )
    print(result.is_error, result.content[0].text[:200])

The tool list should include check_cve, and the first value printed should be False. LangChain gives the same check with await client.get_tools() and await tool.ainvoke({...}) on the check_cve tool.

Limits

Each server takes 60 calls a minute from one network, and a server has a shared daily cap. A refused call comes back as a tool error that starts with rate_limited or daily_limit, so the agent reads it as an error, not as an empty answer. The other answers are in If it does not work. For higher limits, ask support@openkrill.app for a key.

Other servers

Every server uses the same pattern: change the name and the URL. Install steps for ChatGPT, Claude, Cursor, VS Code and Pi are in the MCP install guides.

  • Company Jobs Finder: https://jobs.openkrill.app/mcp
  • Startup Name Check: https://names.openkrill.app/mcp
  • Recall Check: https://recalls.openkrill.app/mcp
  • Citation Checker: https://citations.openkrill.app/mcp
  • Store Price Tracker: https://stores.openkrill.app/mcp
  • Business Days & Workday Calc: https://businessdays.openkrill.app/mcp
  • Tariff & HS Code Duty Finder: https://tariffs.openkrill.app/mcp
  • EU Business & VAT Checker: https://eubusiness.openkrill.app/mcp
  • Regulation Reader: https://rules.openkrill.app/mcp
  • Site SEO & AI Crawler Audit: https://sitecheck.openkrill.app/mcp
  • Travel Check: https://travel.openkrill.app/mcp
  • Food Facts: https://food.openkrill.app/mcp
  • Car Check: https://cars.openkrill.app/mcp
  • Document Tools: https://docs.openkrill.app/mcp
  • Tax Numbers: https://tax.openkrill.app/mcp
  • Catalog QA Desk: https://catalogqa.openkrill.app/mcp
  • Dev Facts Check: https://devfacts.openkrill.app/mcp
  • CVE Risk Check: https://cve.openkrill.app/mcp
  • Domain Mail Check: https://mailcheck.openkrill.app/mcp
  • SEO Audit: https://seoaudit.openkrill.app/mcp
  • Page Fetch: https://pagefetch.openkrill.app/mcp
  • Post Stats: https://poststats.openkrill.app/mcp
  • IndexNow Submit: https://indexnow.openkrill.app/mcp

Source: runs of each snippet against https://cve.openkrill.app/mcp on 2026-10-21, up to the model call. As of 2026-10-21.