# MCP Agents that support remote MCP servers can call Search, Contents and Research as tools, with nothing to install. The server is /v1/mcp on the API host, over Streamable HTTP with your API key as a Bearer token. ## Command-line agents Set AREX_API_KEY in your shell, then add the server with your agent's command. Claude Code and Kimi Code save the key into their configuration when the command runs. ### Codex ```bash codex mcp add arex --url https://api.arex-research.com/v1/mcp \ --bearer-token-env-var AREX_API_KEY ``` ### Claude Code ```bash claude mcp add --transport http arex https://api.arex-research.com/v1/mcp \ --header "Authorization: Bearer $AREX_API_KEY" ``` ### Kimi Code ```bash kimi mcp add --transport http arex https://api.arex-research.com/v1/mcp \ --header "Authorization: Bearer $AREX_API_KEY" ``` ## Other clients Clients configured with JSON use this entry, for example ZCode (Settings → MCP Servers → full configuration) or WorkBuddy (~/.workbuddy/mcp.json). Replace YOUR_API_KEY with your key. ### mcp.json ```json { "mcpServers": { "arex": { "type": "http", "url": "https://api.arex-research.com/v1/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } } ``` ## Agent frameworks Pi SDK, LangGraph and other frameworks can load the tools straight from the server. ### LangGraph ```python import asyncio import os from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent async def main(): client = MultiServerMCPClient({ "arex": { "transport": "streamable_http", "url": "https://api.arex-research.com/v1/mcp", "headers": {"Authorization": f"Bearer {os.environ['AREX_API_KEY']}"}, } }) tools = await client.get_tools() agent = create_react_agent("openai:gpt-4.1", tools=tools) result = await agent.ainvoke({ "messages": [{"role": "user", "content": "Find recent research on agent evaluation."}] }) print(result["messages"][-1].content) asyncio.run(main()) ``` ## Tools Each tool takes the same fields as its API request. | Tool | API operation | | --- | --- | | `arex_search` | `POST /v1/search` | | `arex_contents` | `POST /v1/contents` | | `arex_research` | `POST /v1/research` | ## Results and errors A tool returns the API's JSON response. A failed call returns a tool error containing the API's error object. Rate limits are the same as the API's. arex_research waits until the Run ends.