- Why connect the MCP before you read the rest of the docs
- Connect the ezeep MCP (OAuth — recommended)
- Alternative: static refresh token (demo / ad hoc only)
- What the MCP can do beyond documentation
- Troubleshooting
- Reference
ezeep MCP Server
The ezeep MCP server is a Model Context Protocol server that lets an AI assistant (Claude Desktop, Claude Code, GitHub Copilot, Cursor, and other MCP-aware clients) talk to the ezeep API on your behalf. Connecting it takes about a minute and does not require you to implement any OAuth flow yourself — the client handles authorization automatically.
Why connect the MCP before you read the rest of the docs
Once the MCP is connected, three tools work without any credentials at all and are aimed specifically at understanding the ezeep API:
| Tool | What you can ask |
|---|---|
get_integration_guide |
“Walk me through the shortest end-to-end path from zero to a printed page.” |
get_api_reference |
“Which endpoint do I call to list a user’s printers, and what are the required parameters?” |
get_code_example |
“Give me a curl example for uploading a document and printing it.” |
You do not need an ezeep account to use these three tools — they document the API. Only the ezeep-API-backed tools (list printers, upload document, print, register OAuth client, and so on) require authentication, and the MCP client negotiates that for you the first time you use one.
If you prefer to read the docs directly, everything the MCP surfaces is derived from the pages in this reference; the MCP is a convenience layer, not a substitute.
Connect the ezeep MCP (OAuth — recommended)
The recommended /mcp endpoint uses OAuth 2.1 with PKCE. No credentials in any config file — the client opens a browser for you to sign in to ezeep, obtains its own tokens, and rotates them. Copy the snippet for your client below.
Claude Desktop
Remote MCP servers with OAuth are configured through the Custom Connectors UI, not claude_desktop_config.json. Open Claude Desktop and:
- Go to Settings → Connectors (or Customize → Connectors depending on version).
- Click the + button under Custom connectors and choose Add custom connector.
- Enter:
-
Name:
ezeep -
URL:
https://mcp.ezeep.com/mcp
-
Name:
- Save. Claude Desktop opens a browser window for you to sign in to ezeep on first use.
Claude Code (CLI)
claude mcp add --transport http ezeep https://mcp.ezeep.com/mcp
Verify with claude mcp list.
GitHub Copilot (VS Code)
VS Code has a guided dialog for registering remote MCP servers — no manual JSON edit required:
- Open the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) and run MCP: Add Server. - Choose HTTP as the transport.
- Enter the server URL:
https://mcp.ezeep.com/mcp - Enter a server ID:
ezeep - Pick where to save it — Workspace (
.mcp.jsonat the repo root, shareable with teammates) or User (global, available in every workspace).
VS Code picks the server up immediately; no reload. On first use, Copilot opens a browser window for you to sign in to ezeep.
See the official VS Code reference: Use MCP servers in VS Code.
Cursor
In Cursor, remote MCP servers are registered from the Settings UI:
- Open Cursor Settings (
Ctrl+,/Cmd+,). - Go to Tools & Integrations (older builds: Tools & MCP, or Features → MCP).
- Click + Add Custom MCP. Cursor opens the global config file (
~/.cursor/mcp.json) with a scaffold. -
Add the ezeep entry and save:
{ "mcpServers": { "ezeep": { "url": "https://mcp.ezeep.com/mcp" } } }
Cursor shows the server in the MCP list once saved and opens a browser window for the ezeep sign-in the first time you invoke a tool. For project-scoped configuration, use .cursor/mcp.json inside the project directory instead.
See the official Cursor reference: Model Context Protocol.
Alternative: static refresh token (demo / ad hoc only)
If your MCP client does not yet implement the MCP OAuth flow — and you are doing a quick experiment, personal script, or throwaway test — the server also accepts a static refresh token via HTTP headers (X-Refresh-Token, and optionally X-Client-ID if you are using your own registered client rather than the sandbox client). This path pairs naturally with the API Token Generator — the token it issues works out of the box because both sides use the sandbox client, and that client has refresh-token rotation disabled so the stored token stays valid without rotation handling. For production integrations, use the OAuth setup above instead.
Most MCP clients (Claude Desktop, Claude Code, GitHub Copilot, Cursor) support this via the mcp-remote npm helper. Example for Claude Desktop:
{
"mcpServers": {
"ezeep": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.ezeep.com/mcp",
"--header", "X-Refresh-Token:${EZEEP_REFRESH_TOKEN}"
],
"env": {
"EZEEP_REFRESH_TOKEN": "<refresh token from the API Token Generator>"
}
}
}
}
The other three clients follow the same mcp-remote pattern; adapt the wrapping config-file shape to the client’s schema.
What the MCP can do beyond documentation
Once authenticated, the MCP can list printers, upload documents, submit print jobs, retrieve job status, and — for organization administrators — register a new OAuth Client ID for your production application via a conversational prompt.
Troubleshooting
Claude connectors — Allowed Network Egress
If you have Allowed Network Egress enabled on the connector (Claude Settings → Connectors) and only mcp.ezeep.com listed, the connector authenticates and most tools work, but file uploads fail. Printing a document is a two-hop operation: the MCP asks the ezeep API for a short-lived SAS URI, and the client then uploads the file bytes directly to Azure Blob Storage. Add both hosts under Additional allowed domains:
mcp.ezeep.com*.blob.core.windows.net
The second host is required for every ezeep client, not just the MCP — ezeep’s upload API returns pre-signed Azure Blob Storage URLs rather than proxying bytes through its own API.
Reference
- Production endpoint:
https://mcp.ezeep.com/mcp - For advanced configuration questions (multi-tenant setups, self-hosting, custom clients), email ezeep support at support@ezeep.com.