Skip to main content
If you are using the official OpenAI or Anthropic Node SDKs, see SDK Integration — the integration is a two-field change. SERV accepts the OpenAI and Anthropic HTTP API formats, so any client built for either one works. That includes:
  • Python: openai, anthropic
  • Vercel AI SDK: @ai-sdk/openai, @ai-sdk/anthropic
  • LangChain: langchain-openai, langchain-anthropic (Python or JS)
  • LlamaIndex: the OpenAI and Anthropic LLM classes
  • Mastra, AutoGen, CrewAI, Instructor, LiteLLM, and similar
  • Raw fetch, curl, or any HTTP client
We run integration tests against the official openai and anthropic SDKs (Node and Python), @ai-sdk/openai, @ai-sdk/anthropic, and LangChain. The other tools work through the same API formats, but are documented patterns rather than tested paths.

What changes

Every request also needs a system prompt — SERV rejects requests without one. Nothing else changes: prompts, tool definitions, streaming, and business logic stay the same. For the full field mapping, see the parameter map.
The google-genai SDK is not supported. It speaks Gemini’s native generateContent format, not the OpenAI or Anthropic API. To use Gemini or Gemma, switch to the OpenAI SDK and call /v1/chat/completions.

Python

openai

anthropic

Vercel AI SDK

The AI SDK exposes per-provider factories that accept custom base URLs.

@ai-sdk/openai

@ai-sdk/anthropic

Unlike the official Anthropic Node SDK, @ai-sdk/anthropic requires the /v1 suffix in the baseURL. The “no /v1” rule only applies to the official @anthropic-ai/sdk package.

LangChain (JS)

ChatOpenAI

ChatAnthropic

LangChain (Python)

ChatOpenAI

ChatAnthropic

Raw fetch and curl

With no SDK, the wire format is plain JSON.

OpenAI shape

Anthropic shape

Migration prompt for AI coding tools

To migrate an existing integration with Claude Code, Cursor, Copilot, or another coding agent, paste this into the chat:

Troubleshooting

See also