Connect UnifiedModels to your AI assistant or coding agent. Through the Model Context Protocol (MCP), tools like Claude, ChatGPT, Cursor, VS Code and Codex can read and edit your data models, generate code in 30 languages and schema formats, import existing schemas, and push the results to GitHub.
Use this URL wherever your client asks for a remote MCP server:
https://api.unifiedmodels.com/mcp
There is no API key to copy or rotate: your client stores and refreshes its sign-in for you.
| Server URL | https://api.unifiedmodels.com/mcp |
|---|---|
| Transport | Streamable HTTP (remote). Nothing to install. |
| Authentication | OAuth 2.1 sign-in with your UnifiedModels account. No API key. |
| MCP versions | 2026-07-28, plus earlier revisions back to 2025-03-26 |
| Capabilities | 21 tools and 3 resources |
Language ids are what the tools take; your assistant can also look them up with list_languages.
| Language / format | Id | Generate | Import |
|---|---|---|---|
| ALPS | alps | ✓ | ✓ |
| AsyncAPI | asyncapi | ✓ | ✓ |
| BigQuery | bigquery | ✓ | ✓ |
| C# | csharp | ✓ | ✓ |
| DynamoDB | dynamodb | ✓ | ✓ |
| F# | fsharp | ✓ | ✓ |
| Go | golang | ✓ | ✓ |
| Google Discovery | googlediscovery | ✓ | ✓ |
| GraphQL | graphql | ✓ | ✓ |
| Joi | joi | ✓ | |
| JSON Schema | json | ✓ | ✓ |
| Mermaid | mermaid | ✓ | |
| Microsoft Graph | microsoftgraph | ✓ | |
| MongoDB | mongodb | ✓ | ✓ |
| Mongoose | mongoose | ✓ | |
| Nomnoml | nomnoml | ✓ | |
| Nomnoml (SVG) | nomnoml_svg | ✓ | |
| OpenAPI | openapi | ✓ | ✓ |
| PHP | php | ✓ | ✓ |
| Prisma | prisma | ✓ | |
| Protobuf | protobuf | ✓ | |
| Python | python | ✓ | |
| RAML | raml | ✓ | ✓ |
| Ruby | ruby | ✓ | ✓ |
| SQL | sql | ✓ | ✓ |
| Swagger | swagger | ✓ | ✓ |
| TypeBox | typebox | ✓ | |
| TypeORM | typeorm | ✓ | |
| TypeScript | typescript | ✓ | ✓ |
| Zod | zod | ✓ |
Any client that supports remote MCP servers with OAuth can connect directly. Instructions for popular clients follow; menus move between releases, so check your client's own MCP documentation if a step does not match.
UnifiedModels and paste the server URL.On Team and Enterprise plans, an owner may need to add the connector for the organization first.
claude mcp add --transport http unifiedmodels https://api.unifiedmodels.com/mcp
Then run /mcp inside Claude Code, select unifiedmodels and choose Authenticate. Add --scope project to share the server with your team through .mcp.json, or --scope user to use it in every project.
UnifiedModels, paste the server URL and choose OAuth authentication.codex mcp add unifiedmodels --url https://api.unifiedmodels.com/mcp codex mcp login unifiedmodels
Or add it to ~/.codex/config.toml and then run codex mcp login unifiedmodels:
[mcp_servers.unifiedmodels] url = "https://api.unifiedmodels.com/mcp"
Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), then open Settings → MCP and click Connect next to unifiedmodels:
{
"mcpServers": {
"unifiedmodels": {
"url": "https://api.unifiedmodels.com/mcp"
}
}
}code --add-mcp '{"name":"unifiedmodels","type":"http","url":"https://api.unifiedmodels.com/mcp"}'Or add it to .vscode/mcp.json in your workspace (or run MCP: Add Server from the Command Palette). Start the server when prompted and sign in; then use it from Copilot Chat in Agent mode.
{
"servers": {
"unifiedmodels": {
"type": "http",
"url": "https://api.unifiedmodels.com/mcp"
}
}
}Open Windsurf Settings → Cascade → MCP Servers → View raw config (~/.codeium/windsurf/mcp_config.json), add the server, and refresh:
{
"mcpServers": {
"unifiedmodels": {
"serverUrl": "https://api.unifiedmodels.com/mcp"
}
}
}gemini mcp add --transport http unifiedmodels https://api.unifiedmodels.com/mcp
Or add it to ~/.gemini/settings.json. Then run /mcp auth unifiedmodels inside Gemini CLI to sign in:
{
"mcpServers": {
"unifiedmodels": {
"httpUrl": "https://api.unifiedmodels.com/mcp"
}
}
}Add a context server to your Zed settings.json. This uses the mcp-remote bridge, which handles the browser sign-in:
{
"context_servers": {
"unifiedmodels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.unifiedmodels.com/mcp"
]
}
}
}Open the MCP Servers panel, choose Configure to edit cline_mcp_settings.json, and add:
{
"mcpServers": {
"unifiedmodels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.unifiedmodels.com/mcp"
]
}
}
}Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP), click Add, choose As JSON and paste:
{
"mcpServers": {
"unifiedmodels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.unifiedmodels.com/mcp"
]
}
}
}Any client that supports remote Streamable HTTP servers with OAuth can use the server URL directly. For a client that only runs local (stdio) servers, or cannot do OAuth, bridge it with mcp-remote (needs Node.js 18+). It opens the browser sign-in on first use and stores the token locally:
{
"mcpServers": {
"unifiedmodels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.unifiedmodels.com/mcp"
]
}
}
}When you approve a client, the consent screen lists the scopes it is asking for. Each tool checks for the scope it needs, so you can, for example, give a client read-only access to your projects.
| Scope | Allows |
|---|---|
mcp | Connect to UnifiedModels over MCP. Every client needs this. |
projects:read | Read your projects, models, enums and constants, and generate code from them. |
projects:write | Create, change and delete your projects and their models, enums and constants. |
repos:read | List the repositories and branches of your connected GitHub account. |
repos:write | Commit generated code to your connected repositories. |
Tools that address a single model, enum or constant accept either its id or its name. Prefer upsert_model, upsert_enum and upsert_constant over upsert_project: they change only that one item, so they cannot overwrite someone else's concurrent edit.
| Tool | What it does | Scope | Changes data |
|---|---|---|---|
list_projects | List every project you own or collaborate on. | projects:read | No |
get_project | Get a project in full: models, enums, constants, target languages, collaborators and repositories. | projects:read | No |
upsert_project | Create a project, or replace an existing one wholesale. | projects:write | Yes |
delete_project | Permanently delete a project and everything in it. Owners and project admins only. | projects:write | Yes |
| Tool | What it does | Scope | Changes data |
|---|---|---|---|
get_model | Get one model and its fields. | projects:read | No |
upsert_model | Create or update one model. Renaming updates every reference to it. | projects:write | Yes |
update_field | Change some attributes of one field (its description, say) without resending the model. | projects:write | Yes |
delete_model | Delete a model and clear the fields that referred to it. | projects:write | Yes |
get_enum | Get one enum and its values. | projects:read | No |
upsert_enum | Create or update one enum. | projects:write | Yes |
delete_enum | Delete an enum and clear references to it. | projects:write | Yes |
get_constant | Get one constant. | projects:read | No |
upsert_constant | Create or update one constant. | projects:write | Yes |
delete_constant | Delete a constant. | projects:write | Yes |
| Tool | What it does | Scope | Changes data |
|---|---|---|---|
list_languages | List the supported languages and formats, and which of them can be imported. | mcp | No |
generate_code | Generate a project as source in one language or format. | projects:read | No |
guess_import_language | Detect which importers recognise a pasted schema or source file. | mcp | No |
parse_schema | Parse a schema or source file into models and enums, without saving them. | projects:read | No |
| Tool | What it does | Scope | Changes data |
|---|---|---|---|
list_github_repos | List the repositories your connected GitHub account can reach. | repos:read | No |
list_github_branches | List the branches of one repository. | repos:read | No |
push_to_repo | Generate the project's enabled languages and commit them to one or all of its connected repositories. | repos:write | Yes |
Clients that support MCP resources can also attach these read-only views as context:
| URI | Contents |
|---|---|
unifiedmodels://projects | Every project you own or collaborate on. |
unifiedmodels://project/{project_id} | One project in full, as JSON. |
unifiedmodels://project/{project_id}/generate/{language} | Generated source for one language, in full (generate_code truncates very large output). |
phone string field to the Customer model.”Status enum to OrderStatus.”generate_code returns at most 100,000 characters, so it does not flood your assistant's context. For the full output, read the unifiedmodels://project/{project_id}/generate/{language} resource. parse_schema only parses; nothing is saved until the assistant upserts the results.push_to_repo pushes to the repositories connected to the project. Set both up in the web app first. push_to_repo makes real commits, and the delete tools are permanent. Most clients ask before running tools that change data; keep that confirmation on. See our Privacy Policy for how your data is handled.
| Problem | Fix |
|---|---|
| The browser sign-in never opens | Make sure the client is set up for a remote HTTP server with OAuth, not a stdio command. If it cannot do OAuth, use the mcp-remote bridge. |
| 401 Unauthorized, or tools stop working after a while | Your sign-in expired or was revoked. Re-authenticate in the client (for example /mcp in Claude Code, or disconnect and reconnect the connector). |
| “This token is missing the required scope” | The client was approved without that permission. Disconnect, reconnect, and approve all the scopes you want it to use. |
| GitHub tools return nothing or fail | Connect GitHub to your UnifiedModels account in the web app, and add repositories to the project before using push_to_repo. |
| A client only supports the older HTTP+SSE transport | Use the mcp-remote bridge, which talks Streamable HTTP to us and stdio to your client. |
POST only. The server is stateless and serves protocol revision 2026-07-28 (no initialize handshake) as well as earlier revisions back to 2025-03-26. There is no GET stream and no legacy HTTP+SSE endpoint. https://api.unifiedmodels.com/.well-known/oauth-protected-resource/mcphttps://api.unifiedmodels.com/.well-known/oauth-authorization-serverclient_id) or register through Dynamic Client Registration at https://api.unifiedmodels.com/oauth/register. authorization_code with PKCE S256 (plain is refused) and refresh_token. Public clients and client_secret_post / client_secret_basic are supported, and authorization responses carry iss (RFC 9207). https://api.unifiedmodels.com/mcp. A 401 response carries a WWW-Authenticate challenge naming the resource metadata and every scope the tools use. If you have trouble connecting, contact us.
© 2026 Unified API Inc.