For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://modelgates.ai/docs/_mcp/server.
Server Tools
Server tools are currently in beta. The API and behavior may change.
Server tools are specialized tools operated by ModelGates that any model can call during a request. When a model decides to use a server tool, ModelGates executes it server-side and returns the result to the model — no client-side implementation needed.
Server Tools vs Plugins vs User-Defined Tools
| Server Tools | Plugins | User-Defined Tools | |
|---|---|---|---|
| Who decides to use it | The model | Always runs | The model |
| Who executes it | ModelGates | ModelGates | Your application |
| Call frequency | 0 to N times per request | Once per request | 0 to N times per request |
| Specified via | tools array | plugins array | tools array |
| Type prefix | modelgates:* | N/A | function |
Server tools are tools the model can invoke zero or more times during a request. ModelGates handles execution transparently.
Plugins inject or mutate a request or response to add functionality (e.g. response healing, PDF parsing). They always run once when enabled.
User-defined tools are standard function-calling tools where the model suggests a call and your application executes it.
Available Server Tools
| Tool | Type | Description |
|---|---|---|
| Web Search | modelgates:web_search | Search the web for current information |
| Datetime | modelgates:datetime | Get the current date and time |
| Image Generation | modelgates:image_generation | Generate images from text prompts |
| Web Fetch | modelgates:web_fetch | Fetch and extract content from URLs |
How Server Tools Work
- You include one or more server tools in the
toolsarray of your API request. - The model decides whether and when to call each server tool based on the user's prompt.
- ModelGates intercepts the tool call, executes it server-side, and returns the result to the model.
- The model uses the result to formulate its response. It may call the tool again if needed.
Server tools work alongside your own user-defined tools — you can include both in the same request.
Quick Start
Add server tools to the tools array using the modelgates: type prefix:
const response = await fetch('https://modelgates.ai/api/v1/chat/completions', { method: 'POST', headers: { Authorization: 'Bearer {{API_KEY_REF}}', 'Content-Type': 'application/json', }, body: JSON.stringify({ model: '{{MODEL}}', messages: [ { role: 'user', content: 'What are the latest developments in AI?' } ], tools: [ { type: 'modelgates:web_search' }, { type: 'modelgates:datetime' } ] }),}); const data = await response.json();console.log(data.choices[0].message.content);import requests response = requests.post( "https://modelgates.ai/api/v1/chat/completions", headers={ "Authorization": f"Bearer {{API_KEY_REF}}", "Content-Type": "application/json", }, json={ "model": "{{MODEL}}", "messages": [ { "role": "user", "content": "What are the latest developments in AI?" } ], "tools": [ {"type": "modelgates:web_search"}, {"type": "modelgates:datetime"} ] }) data = response.json()print(data["choices"][0]["message"]["content"])curl https://modelgates.ai/api/v1/chat/completions \ -H "Authorization: Bearer {}" \ -H "Content-Type: application/json" \ -d '{ "model": "{{MODEL}}", "messages": [ { "role": "user", "content": "What are the latest developments in AI?" } ], "tools": [ {"type": "modelgates:web_search"}, {"type": "modelgates:datetime"} ] }'Combining with User-Defined Tools
Server tools and user-defined tools can be used in the same request:
{ "model": "openai/gpt-5.2", "messages": [...], "tools": [ { "type": "modelgates:web_search", "parameters": { "max_results": 3 } }, { "type": "modelgates:datetime" }, { "type": "function", "function": { "name": "get_stock_price", "description": "Get the current stock price for a ticker symbol", "parameters": { "type": "object", "properties": { "ticker": { "type": "string" } }, "required": ["ticker"] } } } ]}The model can call any combination of server tools and user-defined tools. ModelGates executes the server tools automatically, while your application handles the user-defined tool calls as usual.
Usage Tracking
Server tool usage is tracked in the response usage object:
{ "usage": { "input_tokens": 105, "output_tokens": 250, "server_tool_use": { "web_search_requests": 2 } }}Next Steps
- Web Search — Search the web for real-time information
- Datetime — Get the current date and time
- Image Generation — Generate images from text prompts
- Web Fetch — Fetch and extract content from URLs
- Tool Calling — Learn about user-defined tool calling