View raw

OpenAI API#

Use ClipKit's MCP tools from your own OpenAI app — either the Agents SDK (the agent loop runs in your code) or the Responses API hosted mcp tool (OpenAI's servers connect to ClipKit for you).

ClipKit's connector is open (no headers, no OAuth) and speaks Streamable HTTP at https://www.clipkit.dev/mcp.

Responses API#

Add ClipKit to the tools array. Set require_approval: "never" or every tool call pauses for human approval.

import OpenAI from "openai";
const client = new OpenAI();

const resp = await client.responses.create({
  model: "gpt-5.5",
  tools: [
    {
      type: "mcp",
      server_label: "clipkit",
      server_url: "https://www.clipkit.dev/mcp",
      require_approval: "never",
    },
  ],
  input: "Build a 5s title card and return a preview still.",
});
console.log(resp.output_text);

Agents SDK (Python)#

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

async def main():
    async with MCPServerStreamableHttp(
        name="ClipKit",
        params={"url": "https://www.clipkit.dev/mcp"},  # open server, no headers
        cache_tools_list=True,
    ) as server:
        agent = Agent(
            name="Video assistant",
            instructions="Use the ClipKit MCP tools to author video.",
            mcp_servers=[server],
        )
        result = await Runner.run(agent, "Make a 5s title card and preview it.")
        print(result.final_output)

asyncio.run(main())

Agents SDK (JavaScript)#

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

const clipkit = new MCPServerStreamableHttp({
  url: "https://www.clipkit.dev/mcp",
  name: "ClipKit",
  cacheToolsList: true,
});
await clipkit.connect();

const agent = new Agent({
  name: "Video assistant",
  instructions: "Use the ClipKit MCP tools to author video.",
  mcpServers: [clipkit],
});

const result = await Runner.run(agent, "Make a 5s title card and preview it.");
console.log(result.finalOutput);
await clipkit.close();

Notes#

  • require_approval: "never" is required for unattended Responses API runs — the default pauses with an mcp_approval_request.
  • The hosted mcp tool needs a tool-capable model (gpt-4.1, gpt-5.x, o-series). server_url must be sent on every responses.create call — OpenAI doesn't persist it.
  • JS Agents SDK: call await clipkit.connect() before running, and close() when done — skip connect() and the tool list comes back empty.

New to the tools? The MCP server overview has the full tool list and how projects work.