OpenAI

Use Thirdfy MCP from OpenAI. The Responses API remote MCP tool, Codex, and ChatGPT developer mode.

Use Thirdfy from OpenAI models so they can read markets and act for your agent. Pick the OpenAI surface you use:

SurfaceBest for
Responses APIYour own app or agent on OpenAI models
CodexCoding agent in the terminal or IDE
ChatGPTChat with your agent: sign in with Thirdfy, then read and trade within its limits

ChatGPT connects by signing in with your Thirdfy account. The Responses API and Codex use a Thirdfy agent API key (agent-...) instead. To get a key, run email onboarding through any MCP client or with the Agent CLI.

Responses API

Add Thirdfy as an mcp tool. OpenAI connects to the server and lists its tools. Put your agent key in authorization; Thirdfy receives it as the bearer token. Send it on every request, because OpenAI does not store it. See OpenAI's MCP and connectors guide.

Python
curl
import os
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    tools=[{
        "type": "mcp",
        "server_label": "thirdfy",
        "server_description": "Thirdfy: governed onchain actions and market data for agents.",
        "server_url": "https://mcp.thirdfy.com/mcp",
        "authorization": os.environ["AGENT_API_KEY"],
        "allowed_tools": ["getProviderActions", "getVenueReadiness", "agentRun"],
        "require_approval": "always",
    }],
    input="Using Thirdfy, read the latest BTC funding on Hyperliquid.",
)
print(response.output_text)

Approvals

require_approval: "always" is the default, and the safe choice for an agent that can trade. With it, each tool call comes back as an mcp_approval_request item with the tool name and arguments. To approve, create a new response with previous_response_id and an mcp_approval_response input item:

response = client.responses.create(
    model="gpt-6-astra",
    tools=[...],  # same Thirdfy tool as above
    previous_response_id=response.id,
    input=[{
        "type": "mcp_approval_response",
        "approve": True,
        "approval_request_id": "<id of the mcp_approval_request>",
    }],
)

To skip approval for read-only tools only, pass an object: "require_approval": {"never": {"tool_names": ["getProviderActions", "getVenueReadiness"]}}.

Codex

Add Thirdfy from the terminal:

codex mcp add thirdfy --url https://mcp.thirdfy.com/mcp

Then give Codex your agent key from an environment variable. In ~/.codex/config.toml (or .codex/config.toml in a trusted project):

[mcp_servers.thirdfy]
url = "https://mcp.thirdfy.com/mcp"
bearer_token_env_var = "AGENT_API_KEY"

Codex sends Authorization: Bearer <value of AGENT_API_KEY>. Export the variable before you start Codex. For more, see OpenAI's Codex MCP docs.

ChatGPT

Step by step, in plain words: Use Thirdfy in ChatGPT. Newer ChatGPT versions add MCP servers as plugins at chatgpt.com/plugins (+ → Add custom MCP server); the steps below are for developer mode.

In ChatGPT, you add Thirdfy as a custom connector in developer mode. Developer mode is on Plus, Pro and some business plans, and a workspace admin may need to allow it. Its menu has moved between releases, so follow OpenAI's current help to find it.

  1. Create the connector with the URL https://mcp.thirdfy.com/mcp and OAuth authentication.
  2. ChatGPT opens the Thirdfy sign-in page. Sign in with the same method you use on thirdfy.com (email, Google or wallet).
  3. Pick the agent ChatGPT acts for, or click + Create a new agent.
  4. Choose access: Read (always), Trade within your agent's limits, and Stay connected (up to 30 days). Click Approve.

ChatGPT then works for that one agent. Each trade asks you to confirm first. Manage or revoke the connection at auth.thirdfy.com/connections. For what a signed-in app can do, see Connect.

To browse the catalog without signing in, use https://mcp.thirdfy.com/mcp/public with No authentication.

Troubleshooting

IssueFix
401 Authentication requiredChatGPT: reconnect and sign in. Responses API and Codex: pass the agent key in authorization or bearer_token_env_var
Writes return insufficient_scopeYou granted Read only. Reconnect and tick Trade
Tool not foundMatch names exactly to GET https://mcp.thirdfy.com/tools, and include them in allowed_tools
Response stops at mcp_approval_requestSend an mcp_approval_response, or relax require_approval for read tools
AGENT_IDENTITY_MISMATCHThe model passed a different key in arguments. The bearer key is used