ezeep MCP: Cloud Printing as an MCP Server
Give any MCP-compatible AI tool the ability to list printers, submit print jobs, manage users, and pull usage data. Works with Claude, Cursor, Copilot, Lovable, and any agent framework that speaks Model Context Protocol. OAuth 2.0 with scope separation.
What is the ezeep MCP server?
The ezeep MCP server is a hosted implementation of the Model Context Protocol (MCP) that exposes cloud printing as a set of callable tools for AI agents, assistants, and app builders. It lets any MCP-compatible client - including Claude Desktop, Cursor, GitHub Copilot, and Lovable - discover printers, submit print jobs, manage users, and pull usage data using natural language or programmatic input. The MCP is backed by the ezeep cloud print platform, and available on all ezeep plans at no additional cost.
Why Is Printing the Missing Tool in Every Agentic Workflow?
AI Assistants Have No Path to the Physical World
An IT admin can ask Claude to list AWS instances but not printers. A warehouse copilot can generate a shipping label as a PDF but not route it to a label printer. Printing has stayed stuck behind driver stacks, print servers, and vendor-specific APIs - none of which an agent can navigate without custom glue.
AI Builders Recommend Services That Don't Exist
Ask Lovable, Cursor, or Copilot to add printing and the suggestions fall apart: Google Cloud Print shut down in 2021, browser APIs can't reach real printers, and hand-rolled REST integrations take hours to debug. Features get cut, or the app ships without printing.
Rolling Your Own Rebuilds What ezeep Already Solved
Cross-platform rendering, driver management, printer discovery, job routing, user authentication, fleet monitoring. If you write your own AI-to-print integration, you start from nothing. ezeep MCP gives you an enterprise print platform with 6,000+ drivers, Zebra label support, and a live customer base.
Build Secure Release Into Your Application
# Get pending jobs for authenticated user
curl -X GET 'https://printapi.ezeep.com/pullprint/jobs' \
-H "Authorization: Bearer <access_token>"
# Release a specific job to a printer
curl -X POST 'https://printapi.ezeep.com/pullprint/release' \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"job_id": "<pending_job_id>",
"printer_id": "<release_printer_id>"
}'
// Get pending jobs for authenticated user
const jobs = await fetch(
"https://printapi.ezeep.com/pullprint/jobs",
{ headers: { Authorization: "Bearer <access_token>" } }
);
// Release a specific job to a printer
const release = await fetch(
"https://printapi.ezeep.com/pullprint/release",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <access_token>",
},
body: JSON.stringify({
job_id: "<pending_job_id>",
printer_id: "<release_printer_id>",
}),
}
);
import requests
headers = {"Authorization": "Bearer <access_token>"}
# Get pending jobs for authenticated user
jobs = requests.get(
"https://printapi.ezeep.com/pullprint/jobs",
headers=headers
).json()
# Release a specific job to a printer
release = requests.post(
"https://printapi.ezeep.com/pullprint/release",
headers={**headers, "Content-Type": "application/json"},
json={
"job_id": "<pending_job_id>",
"printer_id": "<release_printer_id>",
},
).json()
Query available printers by name, location, or capability. Submit print jobs by passing a document and a printer target. Monitor and manage in-progress jobs. Create and manage users, groups, and printer assignments. Pull usage history and reporting. Manage your entire print fleet through conversation — ask your AI to show offline printers, invite users, or reassign printer groups without opening a dashboard.
Printers, Print Jobs, Users, Groups, Assignments, Connectors, Usage Reports.
Claude, Cursor, Lovable, Windsurf, GitHub Copilot, and any platform that supports the Model Context Protocol.
Printing shipping labels and packing slips from a Lovable-built fulfilment platform. Triggering invoice runs from a Claude-powered accounting workflow. Building a warehouse ops copilot that routes documents to the right printer at the right time. Giving any AI-built application a print button that actually works at enterprise scale.
What You Can Do
Query pending print jobs for an authenticated user. Release specific jobs to a target printer on demand. Build custom release interfaces for kiosks, touchscreens, or mobile apps. Support both trusted-user and trusted-device authentication workflows.
Common Use Cases
Custom release apps on printer touchscreens, RFID or badge-tap release at shared devices, mobile release from a custom app, secure printing in healthcare and financial services environments.
How Does the ezeep MCP Server Work?
Add the MCP Endpoint to Your AI Client
Claude Desktop, Cursor, Copilot, and most MCP clients accept a config block like this:
{ "mcpServers": { "ezeep": { "type": "http", "url": "https://[ezeep-mcp-endpoint]/mcp" } } }
Lovable and other AI builders that support personal connectors take the same URL through their own UI.
Authenticate With OAuth
On first use the client opens a browser for OAuth. Sign in with your ezeep organization admin account. The server returns a short-lived access token with single-use refresh token rotation per the MCP authorization spec. Credentials never appear in the AI conversation or the client's logs.
Call Tools
The AI discovers 20 tools across printing, admin, and developer support. It calls them through natural language or programmatic input. Everything runs through the same ezeep platform as the REST API, with the same rate limits, billing, and reporting.
What Is the Difference Between Using ezeep MCP at Build Time vs Runtime?
Build-Time: Scaffolding an Integration
Inside Lovable, Cursor, Copilot, or Claude Desktop, the AI uses MCP to build something that prints. It discovers the tool surface, reads the integration guide, generates working code, and runs a test print. The deployed app then calls the ezeep REST API at runtime. MCP is not in the end-user loop. This is the primary path for AI app builders and the fastest way for a developer to prototype a print integration.
Runtime: Driving an Agent
Agent frameworks use MCP as the permanent interface. The agent calls list_printers, print_from_url, and get_print_job_status as native tools inside a larger workflow. This is the path for IT automation (fleet status, user provisioning), ops copilots (label printing from a WMS), and document workflows where no human sits in the loop.
What Tools Does the ezeep MCP Server Expose?
list_printers, get_printer_properties, print_from_url, print_uploaded_file, prepare_file_upload, get_print_job_status, get_supported_filetypes
list_connectors, get_connector_status, list_offline_connectors, list_printers_with_issues, list_groups, create_group, assign_printer_to_group, list_users, invite_user, add_user_to_group
get_integration_guide, get_api_reference, get_code_example
Scope separation runs through the auth layer. The printing scope covers printer, job, and file tools. The accounts scope covers user, group, and connector management. Developer support tools require no auth at all, so an AI client can read integration docs and generate scaffolding code before the user has even signed in.
User: Print the shipping label at https://example.com/labels/A4719.pdf
to the Warehouse-Zebra-01 printer.
AI: [calls list_printers]
AI: [calls print_from_url with printer_id and file_url]
AI: Printed. Job ID 8f3c9d2a, status sent_to_printer.
How Does ezeep MCP Change the Way Developers Build Print Integrations?
Integrations Drop From Hours to Minutes
Build-time scaffolding through MCP generates working REST code against ezeep in a single conversation. No SDK to install, no authentication flow to debug manually, no printer discovery to implement.
Operational Tasks Move Out of the Dashboard
Anything an ezeep admin does in the web console is reachable from an AI client. Useful for IT teams that already work in Claude, Copilot, or Cursor, and for automating admin tasks that used to require scripts against the REST API.
Same Platform as the REST API
MCP calls route through the same ezeep infrastructure that serves the REST API. Same rate limits, same billing, same reporting, same ThinPrint-backed rendering engine that handles millions of print jobs daily in production for Fortune 500 customers.
What Can You Build With the ezeep MCP Server?
Invoice and Document Generators Built in AI App Builders
Warehouse and Logistics Copilots
IT Help Desk and Fleet Management Through Chat
Backend Document Workflows
How Do You Set Up the ezeep MCP Server?
ezeep MCP is set up in four steps: add the endpoint to your MCP client config, complete the OAuth flow with your ezeep organization admin account, call list_printers to confirm the connection, and call print_from_url with a test PDF. From zero to first print in under 10 minutes.
ezeep MCP is available on all plans at no additional cost. Usage counts toward standard ezeep API quotas: one MCP tool call equals one API call for rate-limit and billing purposes.
Frequently Asked Questions
Curious about how it all works? Here's everything you wanted to know about ezeep's cloud printing.
Does the ezeep MCP server cost anything extra?
No. The ezeep MCP server has no additional charge. It runs through your existing ezeep account, and print jobs are billed exactly as they are through the REST API or any other ezeep interface. If you already have an ezeep organization, you can connect and start calling tools at no additional cost.
Do you need to write code to use the ezeep MCP server?
No. The AI client handles tool discovery and calls automatically. You add the endpoint, authenticate once with OAuth, and describe what you want in natural language. There's no SDK to install and no API client to wire up. Code only comes into play if you're building a deployed app, and even then, the AI generates the integration code for you at build time.
Which printers and file types does the ezeep MCP server support?
The ezeep MCP server supports everything the ezeep platform supports: 6,000+ printer drivers across office and label hardware, including native Zebra label printing (ZPL, EPL, ZPLII). For files, ezeep renders PDFs, Office documents, and common image formats server-side, so the AI can print a generated PDF or a URL without local drivers. Call get_supported_filetypes to get the current list at runtime.
What happens when the target printer is offline during an MCP print call?
The print call returns a structured status rather than failing silently, and the job is queued against the connector. Before printing, an AI client can call list_printers_with_issues and get_connector_status to confirm a printer is reachable, and get_print_job_status to track a job after submission. Offline printer behavior is identical to the ezeep dashboard or REST API. MCP does not change the underlying job handling.
Can the AI accidentally print to the wrong printer or send the wrong document?
Printing is an explicit tool call, not a background process. The AI calls list_printers to resolve a target and print_from_url or print_uploaded_file with a specific printer and file. Every job returns a job ID and status you can audit in the ezeep admin portal. For unattended workflows, scope the connected account to only the printers and capabilities that workflow actually needs.
Where does document data go when printing through the ezeep MCP server?
Document data moves through the same ezeep infrastructure that handles every other print job: your organization's account and the ThinPrint-backed rendering engine, over HTTPS. Files are processed for rendering and routed to the printer you specify. The document content is not sent to the AI model provider as part of the print call. The model only sees the tool call and its result, not the rendered output. This is the same data path as the REST API.
Does the MCP work with my agent framework?
If the framework supports MCP, yes. Confirmed clients include Claude Desktop, Claude Code CLI, Cursor, Copilot in VS Code, and Lovable. Agent frameworks that implement MCP client support (LangGraph with an MCP adapter, for example) work out of the box. Please know that this list isn’t all available working agents.
How is ezeep MCP different from the ezeep REST API?
The ezeep MCP server and the ezeep REST API run on the same platform but serve different interfaces. MCP is for AI clients discovering and calling tools through natural language. REST is for application code calling endpoints directly. Most customers use MCP at build time to scaffold integrations, and REST at runtime inside the deployed app.
Are credentials exposed to the AI model?
No. OAuth tokens are exchanged directly between the MCP client and the ezeep MCP server over HTTPS. Tokens never appear in the LLM conversation context, never in the client's prompt history, never at the model provider.
Build Printing Into Your App Without the Pain
Add the endpoint. Sign in. Call list_printers. If the connection works, the rest follows.