Authentication and client compatibility for the Magica MCP server.
Quick reference for auth and supported clients.
Authentication
Requests without a valid API key or OAuth access token receive a 401 Unauthorized response with OAuth discovery metadata.
The MCP server accepts either the same API key as the REST API or an OAuth
access token. Send an API key as Authorization: Bearer gx_… or, for clients
such as Anthropic that use their own credential header, as
x-api-key: gx_…. Both forms use the same validation, rate limits, scopes, and
credit accounting. OAuth-only clients such as Claude Desktop discover
Magica’s authorization server, register automatically, and ask you to sign in.See API Reference → Authentication for how to create and manage keys.
get_pricing compatibility
New integrations should read pricingDetails for structured pricing and
estimatedCost for a formatted estimate. Existing integrations may continue
to read costConfig, costSummary, estimatedCredits, and
estimationSource; Magica keeps those fields populated during the migration
window. They will not be removed without a versioned replacement and a
separate deprecation notice.Estimates are not guaranteed final charges. Read pricingApproach, note,
and the billing units in pricingDetails before calculating a budget. Use
get_model_schema and get_pricing for the selected tool’s authoritative
inputs, rates, billing defaults, exclusions and settlement rules.Use modelId: "tool_pricing_catalog" to discover tool billing categories,
then query the exact tool or model ID. Include research, compute, connected-app
and reasoning usage when relevant, not only generation. Read the returned
coverage notes before combining estimates; unknown pricing must not be assumed
to mean zero cost.Pricing discovery does not grant execution permission or expose a tool that is
unavailable on the current interface. Research and planning can incur charges
before generation approval. Execution charges remain server-controlled.
Local file uploads
Use upload_file to upload a local file in three steps:
Call upload_file with the original file_path. Keep the returned media_id and upload instructions.
Run the returned curl PUT command with the file’s bytes and wait for it to exit successfully.
Call upload_file with action: "confirm" and that media_id. Do not include file_path or url when confirming.
The upload session and signed upload URL each expire after one hour. Successful confirmation returns a permanent storage URL; it does not create a media-library catalog row. The PUT command itself does not return the permanent URL.
Confirmation recovery
Confirmation errors include a stable code and a boolean retryable, alongside the error message. Here, retryable: true means confirmation can be retried automatically without correcting the upload or creating a new session. The HTTP statuses below describe the underlying API response.
Code
HTTP status
retryable
Recovery
UPLOAD_SESSION_INVALID
404
false
The session is invalid, expired, or belongs to another account. Call upload_file again with the original file_path, run the new PUT command successfully, then confirm the newmedia_id. Do not keep confirming the old ID.
UPLOAD_OBJECT_MISSING
404
false
Run the PUT command already returned for this session and wait for success before confirming. If the signed URL has expired, create a new session, upload again, and confirm the new media_id.
UPLOAD_STORAGE_UNAVAILABLE
503
true
Storage could not be checked. Retry confirmation with the samemedia_id after a short delay. No new upload is needed yet.
Compatibility
Media generation and supported media utilities share the
execute_tool({ tool_name: "generate", input: { modelId, ...fields } })
contract. search_tools lists only models available to this caller, and
get_model_schema supplies the input contract. Legacy direct utility names in
tool_name remain accepted aliases; existing clients do not need to migrate
their stored calls. See Available Tools for an example.Works with any MCP client that supports the Streamable HTTP transport or HTTP-based MCP configs.
Claude Desktop
Claude Code
Codex
Cursor
Windsurf
Other MCP clients
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Magica","colors":{"primary":"#6366f1","light":"#818cf8","dark":"#4f46e5"},"logo":{"light":"https://mintcdn.com/galaxyai-f8150d75/DBhRDarFZNKVqMQi/logo/logo_light_theme.svg?fit=max\u0026auto=format\u0026n=DBhRDarFZNKVqMQi\u0026q=85\u0026s=6f2c433ff16ffb278918ac9ebdf0de20","dark":"https://mintcdn.com/galaxyai-f8150d75/DBhRDarFZNKVqMQi/logo/logo_dark_theme.svg?fit=max\u0026auto=format\u0026n=DBhRDarFZNKVqMQi\u0026q=85\u0026s=12e176141e9a0793a64292bb91603779"},"favicon":"https://mintcdn.com/galaxyai-f8150d75/quUbr73Mwh3x8_L4/logo/icon.png?fit=max\u0026auto=format\u0026n=quUbr73Mwh3x8_L4\u0026q=85\u0026s=6cf007f3a7707b6edab45417ca58af6b","api":{"openapi":["openapi.json"],"mdx":{"server":"https://inference.magica.com"}},"appearance":{"default":"light"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","grok","aistudio"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"galaxyai-f8150d75","hasAudioNarration":false,"actualSubdomain":"galaxyai-f8150d75","customDomains":["magica.com"],"gitSource":{"type":"github","owner":"galaxyai-team","repo":"app.galaxy.ai","deployBranch":"main","contentDirectory":"api-docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af6ceeb5955afd619ba7e54","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"API Reference","count":21},{"language":"default","tag":"Get Started","count":6},{"language":"default","tag":"LLM Gateway","count":5},{"language":"default","tag":"Standalone Model Runs","count":5},{"language":"default","tag":"Models","count":5},{"language":"default","tag":"Introduction","count":4},{"language":"default","tag":"MCP Server","count":4},{"language":"default","tag":"Generated Media","count":3},{"language":"default","tag":"Overview","count":2},{"language":"default","tag":"Credits","count":1}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"mcp-server/reference","slug":"/mcp-server/reference","pageMetadata":{"title":"Reference","description":"Authentication and client compatibility for the Magica MCP server.","href":"/mcp-server/reference"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Authentication and client compatibility for the Magica MCP server.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,Heading,Table,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Quick reference for auth and supported clients.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Requests without a valid API key or OAuth access token receive a `,_jsx(_components.code,{children:`401 Unauthorized`}),` response with OAuth discovery metadata.`]})}),`\n`,_jsxs(_components.p,{children:[`The MCP server accepts either the same API key as the REST API or an OAuth\naccess token. Send an API key as `,_jsx(_components.code,{children:`Authorization: Bearer gx_…`}),` or, for clients\nsuch as Anthropic that use their own credential header, as\n`,_jsx(_components.code,{children:`x-api-key: gx_…`}),`. Both forms use the same validation, rate limits, scopes, and\ncredit accounting. OAuth-only clients such as Claude Desktop discover\nMagica’s authorization server, register automatically, and ask you to sign in.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/authentication`,children:`API Reference → Authentication`}),` for how to create and manage keys.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`get_pricing-compatibility`,children:[_jsx(_components.code,{children:`get_pricing`}),` compatibility`]}),`\n`,_jsxs(_components.p,{children:[`New integrations should read `,_jsx(_components.code,{children:`pricingDetails`}),` for structured pricing and\n`,_jsx(_components.code,{children:`estimatedCost`}),` for a formatted estimate. Existing integrations may continue\nto read `,_jsx(_components.code,{children:`costConfig`}),`, `,_jsx(_components.code,{children:`costSummary`}),`, `,_jsx(_components.code,{children:`estimatedCredits`}),`, and\n`,_jsx(_components.code,{children:`estimationSource`}),`; Magica keeps those fields populated during the migration\nwindow. They will not be removed without a versioned replacement and a\nseparate deprecation notice.`]}),`\n`,_jsxs(_components.p,{children:[`Estimates are not guaranteed final charges. Read `,_jsx(_components.code,{children:`pricingApproach`}),`, `,_jsx(_components.code,{children:`note`}),`,\nand the billing units in `,_jsx(_components.code,{children:`pricingDetails`}),` before calculating a budget. Use\n`,_jsx(_components.code,{children:`get_model_schema`}),` and `,_jsx(_components.code,{children:`get_pricing`}),` for the selected tool’s authoritative\ninputs, rates, billing defaults, exclusions and settlement rules.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`modelId: \"tool_pricing_catalog\"`}),` to discover tool billing categories,\nthen query the exact tool or model ID. Include research, compute, connected-app\nand reasoning usage when relevant, not only generation. Read the returned\ncoverage notes before combining estimates; unknown pricing must not be assumed\nto mean zero cost.`]}),`\n`,_jsx(_components.p,{children:`Pricing discovery does not grant execution permission or expose a tool that is\nunavailable on the current interface. Research and planning can incur charges\nbefore generation approval. Execution charges remain server-controlled.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`local-file-uploads`,children:`Local file uploads`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`upload_file`}),` to upload a local file in three steps:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.code,{children:`upload_file`}),` with the original `,_jsx(_components.code,{children:`file_path`}),`. Keep the returned `,_jsx(_components.code,{children:`media_id`}),` and upload instructions.`]}),`\n`,_jsx(_components.li,{children:`Run the returned curl PUT command with the file’s bytes and wait for it to exit successfully.`}),`\n`,_jsxs(_components.li,{children:[`Call `,_jsx(_components.code,{children:`upload_file`}),` with `,_jsx(_components.code,{children:`action: \"confirm\"`}),` and that `,_jsx(_components.code,{children:`media_id`}),`. Do not include `,_jsx(_components.code,{children:`file_path`}),` or `,_jsx(_components.code,{children:`url`}),` when confirming.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The upload session and signed upload URL each expire after `,_jsx(_components.strong,{children:`one hour`}),`. Successful confirmation returns a permanent storage URL; it does not create a media-library catalog row. The PUT command itself does not return the permanent URL.`]}),`\n`,_jsx(Heading,{level:`3`,id:`confirmation-recovery`,children:`Confirmation recovery`}),`\n`,_jsxs(_components.p,{children:[`Confirmation errors include a stable `,_jsx(_components.code,{children:`code`}),` and a boolean `,_jsx(_components.code,{children:`retryable`}),`, alongside the error message. Here, `,_jsx(_components.code,{children:`retryable: true`}),` means confirmation can be retried automatically without correcting the upload or creating a new session. The HTTP statuses below describe the underlying API response.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`HTTP status`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`retryable`})}),_jsx(_components.th,{children:`Recovery`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`UPLOAD_SESSION_INVALID`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsxs(_components.td,{children:[`The session is invalid, expired, or belongs to another account. Call `,_jsx(_components.code,{children:`upload_file`}),` again with the original `,_jsx(_components.code,{children:`file_path`}),`, run the new PUT command successfully, then confirm the `,_jsx(_components.strong,{children:`new`}),` `,_jsx(_components.code,{children:`media_id`}),`. Do not keep confirming the old ID.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`UPLOAD_OBJECT_MISSING`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsxs(_components.td,{children:[`Run the PUT command already returned for this session and wait for success before confirming. If the signed URL has expired, create a new session, upload again, and confirm the new `,_jsx(_components.code,{children:`media_id`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`UPLOAD_STORAGE_UNAVAILABLE`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`503`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`Storage could not be checked. Retry confirmation with the `,_jsx(_components.strong,{children:`same`}),` `,_jsx(_components.code,{children:`media_id`}),` after a short delay. No new upload is needed yet.`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`compatibility`,children:`Compatibility`}),`\n`,_jsxs(_components.p,{children:[`Media generation and supported media utilities share the\n`,_jsx(_components.code,{children:`execute_tool({ tool_name: \"generate\", input: { modelId, ...fields } })`}),`\ncontract. `,_jsx(_components.code,{children:`search_tools`}),` lists only models available to this caller, and\n`,_jsx(_components.code,{children:`get_model_schema`}),` supplies the input contract. Legacy direct utility names in\n`,_jsx(_components.code,{children:`tool_name`}),` remain accepted aliases; existing clients do not need to migrate\ntheir stored calls. See `,_jsx(_components.a,{href:`/mcp-server/tools`,children:`Available Tools`}),` for an example.`]}),`\n`,_jsxs(_components.p,{children:[`Works with any MCP client that supports the `,_jsx(_components.strong,{children:`Streamable HTTP`}),` transport or HTTP-based MCP configs.`]}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Claude Desktop`,icon:`message`}),_jsx(Card,{title:`Claude Code`,icon:`terminal`}),_jsx(Card,{title:`Codex`,icon:`code`}),_jsx(Card,{title:`Cursor`,icon:`i-cursor`}),_jsx(Card,{title:`Windsurf`,icon:`wind`}),_jsx(Card,{title:`Other MCP clients`,icon:`puzzle-piece`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Reference","description":"Authentication and client compatibility for the Magica MCP server.","href":"/mcp-server/reference"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"get_pricing compatibility","slug":"get_pricing-compatibility","depth":2,"children":[]},{"title":"Local file uploads","slug":"local-file-uploads","depth":2,"children":[{"title":"Confirmation recovery","slug":"confirmation-recovery","depth":3,"children":[]}]},{"title":"Compatibility","slug":"compatibility","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"galaxyai-f8150d75","siteName":"Magica","title":"Reference - Magica","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T08:41:48.638Z","originalFileLocation":"mcp-server/reference.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Authentication and client compatibility for the Magica MCP server.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Magica\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Reference - Magica\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authentication and client compatibility for the Magica MCP server.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Magica\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://magica.com/docs/mcp-server/reference\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://galaxyai-f8150d75.mintlify.site/docs/_mintlify/api/og/v2?division=Reference\u0026amp;title=Reference\u0026amp;description=Authentication+and+client+compatibility+for+the+Magica+MCP+server.\u0026amp;theme=6ffc046dec82632af34e4ff6\u0026amp;signature=1a747488134a0b3bddbd59f65e5c7c70daf62ea5d30439d6fa168eff12579a60\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Reference - Magica\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authentication and client compatibility for the Magica MCP server.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://galaxyai-f8150d75.mintlify.site/docs/_mintlify/api/og/v2?division=Reference\u0026amp;title=Reference\u0026amp;description=Authentication+and+client+compatibility+for+the+Magica+MCP+server.\u0026amp;theme=6ffc046dec82632af34e4ff6\u0026amp;signature=1a747488134a0b3bddbd59f65e5c7c70daf62ea5d30439d6fa168eff12579a60\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/galaxyai-f8150d75/YAaK7oqNGFqz20z7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Magica\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366f1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://magica.com/docs/mcp-server/reference\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/mcp-server/reference.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://magica.com/#organization\",\"name\":\"Magica\",\"url\":\"https://magica.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/galaxyai-f8150d75/DBhRDarFZNKVqMQi/logo/logo_light_theme.svg?fit=max\u0026auto=format\u0026n=DBhRDarFZNKVqMQi\u0026q=85\u0026s=6f2c433ff16ffb278918ac9ebdf0de20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://magica.com/docs#website\",\"name\":\"Magica\",\"url\":\"https://magica.com/docs\",\"publisher\":{\"@id\":\"https://magica.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://magica.com/docs/mcp-server/reference#webpage\",\"url\":\"https://magica.com/docs/mcp-server/reference\",\"name\":\"Reference\",\"description\":\"Authentication and client compatibility for the Magica MCP server.\",\"dateModified\":\"2026-11-13T08:41:48.638Z\",\"isPartOf\":{\"@id\":\"https://magica.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://magica.com/docs/mcp-server/reference#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://magica.com/docs/mcp-server/reference#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Magica\",\"item\":\"https://magica.com/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reference\",\"item\":\"https://magica.com/docs/mcp-server/reference\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://magica.com/docs/mcp-server/reference#article\",\"headline\":\"Reference\",\"name\":\"Reference\",\"description\":\"Authentication and client compatibility for the Magica MCP server.\",\"url\":\"https://magica.com/docs/mcp-server/reference\",\"mainEntityOfPage\":{\"@id\":\"https://magica.com/docs/mcp-server/reference#webpage\"},\"dateModified\":\"2026-11-13T08:41:48.638Z\",\"publisher\":{\"@id\":\"https://magica.com/#organization\"},\"isPartOf\":{\"@id\":\"https://magica.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Magica\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Magica\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/mcp-server/reference.md","siteName":"Magica","nav":{"global":null,"tabs":[{"tab":"Introduction","pages":[{"title":"Introduction","href":"/introduction/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/authentication"}]},{"tab":"MCP Server","groups":[{"group":"Get Started","pages":[{"title":"Overview","href":"/mcp-server/overview"},{"title":"Setup","href":"/mcp-server/setup"}]},{"group":"Guides","pages":[{"title":"Available Tools","description":"All 14 model-visible MCP tools exposed by the Magica server, organized by category.","href":"/mcp-server/tools"}]},{"group":"Reference","pages":[{"title":"Reference","href":"/mcp-server/reference"}]}]}]},"basePath":"","title":"Reference - Magica","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":[],"chunks":[]}