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 does not require you to implement an OAuth flow yourself. The MCP client handles authorization.

Documentation tools

Once the MCP is connected, three tools work without credentials and help you understand 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.

The recommended /mcp endpoint uses OAuth 2.1 with PKCE. You don’t put credentials in a 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

Add the ezeep server as a custom connector:

  1. Go to Customize → Connectors.
  2. Click + Add and choose Add custom connector.
  3. Enter:
    • Name: ezeep
    • URL: https://mcp.ezeep.com/mcp
  4. Click Continue, complete the authentication settings, and click Add. Claude Desktop opens a browser window for you to sign in to ezeep on first use.

On Team and Enterprise plans, only Owners can add custom connectors, under Organization settings → Connectors. Members then click Connect on the ezeep connector.

Claude Code (CLI)

claude mcp add --transport http ezeep https://mcp.ezeep.com/mcp

This adds the server to the current project only. Add --scope user to make it available in all projects. To sign in, run /mcp in Claude Code (or claude mcp login ezeep). Until you sign in, claude mcp list shows that the server needs authentication.

GitHub Copilot (VS Code)

VS Code has a guided dialog for registering remote MCP servers:

  1. Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run MCP: Add Server.
  2. Choose HTTP as the transport.
  3. Enter the server URL: https://mcp.ezeep.com/mcp
  4. Enter a server ID: ezeep
  5. Pick where to save it. The guided flow saves to Copilot Global (~/.copilot/mcp-config.json), which is available in every workspace. To share the server with teammates, use the workspace file .vscode/mcp.json instead. A .mcp.json file at the repo root is only offered when the experimental setting chat.mcp.workspaceRootConfig.enabled is on.

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

Add the ezeep entry to the global config file ~/.cursor/mcp.json, or to .cursor/mcp.json inside a project directory for project-scoped configuration:

{
  "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.

You can also open the config file from the Cursor UI with + Add Custom MCP. The menu path varies between Cursor releases (Customize in the sidebar; older builds: Cursor Settings → Tools & Integrations, Tools & MCP, or Features → MCP).

See the official Cursor reference: Model Context Protocol.

Alternative: static refresh token

If your MCP client does not yet implement the MCP OAuth flow, 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 instead of the sandbox client). Refresh tokens from the API Token Generator work without X-Client-ID because they are issued for the sandbox client. This path is intended only for testing.

Limitations:

  • Clients created through the API rotate refresh tokens by default (see Managing OAuth clients), so a static refresh token for such a client stops working after its first exchange.
  • Tokens from the API Token Generator carry only the printing scope. Tools that need the accounts scope, such as register_oauth_client, don’t work on this path.

Claude Code, GitHub Copilot (VS Code) and Cursor can send the header directly: Claude Code with --header on claude mcp add, VS Code and Cursor with a headers entry in the server configuration. Claude’s custom connector has a Request headers field. For example, in Claude Code:

claude mcp add --transport http ezeep https://mcp.ezeep.com/mcp --header "X-Refresh-Token: <refresh_token>"

If a client can’t send headers, use the mcp-remote npm helper as a fallback. 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>"
      }
    }
  }
}

In other clients, wrap the same mcp-remote command in the client’s config-file format.

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: allowed network egress

If network egress is restricted in Claude (Settings → Capabilities; for organizations, admins set it under Organization settings → Capabilities) and only mcp.ezeep.com is allowed, the connector authenticates and most tools work, but file uploads fail. To print a document, 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

Every ezeep client that uploads files needs access to *.blob.core.windows.net, because ezeep’s upload API returns pre-signed Azure Blob Storage URLs.

Reference

  • Production endpoint: https://mcp.ezeep.com/mcp
  • For advanced configuration questions (multi-tenant setups, self-hosting, custom clients), contact the ezeep Integration Team via the API Contact Form.