Connect over MCP
This page gives you the Monaiq MCP endpoint, explains how signing in works, and summarises what the tools do.
The endpoint
Section titled “The endpoint”https://api.monaiq.com/mcpThe URL is the entire setup. Point your MCP client at it and you are done: there is no API key to paste, no session key, and no configuration file to fill in beyond the address itself. None of the tools take a credential as a parameter either.
Transport and protocol
Section titled “Transport and protocol”The endpoint speaks the MCP Streamable HTTP transport. Every JSON-RPC message travels as an
HTTP POST to the endpoint above; responses arrive as JSON or as a short event-stream your
client already understands. Where a client configuration asks for a transport type, use http
(some clients call it streamable_http). GET on the endpoint answers 405 Method Not Allowed —
the server offers no server-initiated stream — and nothing is served on any path beneath it.
Details your client handles for you, documented for the curious:
- Protocol version — negotiated during
initialize; the server currently answers2025-06-18, and also accepts the earlier2025-03-26and2024-11-05revisions. If you ask for a version it does not know, it answers with the version it speaks and your client decides. On requests afterinitialize, clients send the negotiated version in theMCP-Protocol-Versionheader. - Sessions —
initializereturns anMcp-Session-Idheader your client echoes on later requests. The value is self-contained: the server keeps no session state behind it, any request works on any server instance, and there is nothing to resume or tear down —DELETEanswers405because termination is unnecessary.
Signing in
Section titled “Signing in”Authentication is MCP-spec OAuth 2.1, and your client drives all of it:
- The first request answers
401with aWWW-Authenticateheader pointing athttps://api.monaiq.com/.well-known/oauth-protected-resource. - Your client reads that document and starts the OAuth flow it describes.
- You sign in with a one-time passcode sent to your email address.
From then on the client holds the token and you work in tools. The code that arrives by email is the only thing you have to supply by hand.
What the tools cover
Section titled “What the tools cover”getting_started orients you: it explains the business domain and how the rest of the tools fit
together.
profile views and manages your seller profile, retrieves your credentials, and reads and accepts
terms. rotate_api_key regenerates your API key, and the old key stops authenticating immediately.
product, product_feature, offering and feature_offering are the catalog: creating, reading,
updating and deleting the product a license unlocks, the features inside it, the offering a
customer buys, and the features attached to that offering.
Licenses, seats and license codes are not MCP tools: your backend manages them through the HTTP management API, where a change that moves money is confirmed by your own code.
implement_base, implement_product_feature and implement_purchase_flow return guidance and
snippets for the integration itself: base wiring, a feature check, and an embedded purchase flow.
They do not edit files. get_platform_manifest returns the full JSON manifest for a supported
platform, provision_api_key_config gives the exact commands and file edits to plumb your API key
into a project, fetch_step_resources retrieves the resources a step refers to, and
monaiq_journal keeps an implementation journal across longer work.
MCP tools reference lists all of them in one table.
What is not available over MCP
Section titled “What is not available over MCP”In Claude Code
Section titled “In Claude Code”Claude Code users can install the Monaiq plugin instead of configuring the endpoint by hand. It is two commands, and it packages the same tools: see AI-assisted setup.
After the tools
Section titled “After the tools”The tools set up your catalog and hand you the integration guidance; the code still runs against the SDKs. See the .NET quickstart or the Node and React quickstart, and Credentials and keys for the key that code will need.