Agents

OpenAI Responses

Your backend calls OpenAI with Sallyport as a remote MCP tool. The keys stay in Sallyport.

The Responses API takes a remote MCP server as a tool of type mcp. Pass the agent token in authorization. OpenAI does not store it, so send it with every request.

Connect it

In Agents, press “New agent” and “Create agent”, then “New token” under “Tokens”. Keep the token in SP_AGENT_TOKEN next to OPENAI_API_KEY.

a complete request
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d @- <<EOF
{
  "model": "gpt-6-astra",
  "input": "Which services can you reach through Sallyport?",
  "tools": [
    {
      "type": "mcp",
      "server_label": "sallyport",
      "server_url": "https://mcp.sallyport.cloud/mcp",
      "authorization": "$SP_AGENT_TOKEN",
      "require_approval": "never"
    }
  ]
}
EOF

Keep the mcp_list_tools item in the conversation. OpenAI then skips fetching the tool list again on the next turn.

Two approval steps

require_approval is OpenAI’s own check. By default every call first comes back to your code as an mcp_approval_request. With "never", the rules you set in Sallyport decide what waits for a person.

A call that waits in Sallyport comes back with approve_url and call_id. Show the link to whoever answers for that service, and send the conversation on once they answer.

The result tells the model to repeat the call with the same call_id. That repeat returns the outcome, so the service is called once.

Connect the agent you have open right now

Paste one link, add a key in Sallyport, and your agent sees the service on its next action.

  • 7 days free
  • Cancel anytime
  • Nothing to install