BlockMag Public MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BlockMag Public MCP ServerLook up the product with barcode 4006381333931 and show its price"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BlockMag Official Public MCP Server (2024-11-05)
Official Model Context Protocol (MCP) server for BlockMag.com — the global multi-tenant business operating platform uniting A4 invoicing, multi-warehouse inventory, automated bank reconciliation, freelancer timesheets, biometric staff attendance, and 0%-commission E-Shop & In-Store Scan & Go commerce.
This repository provides instant, zero-authentication access to BlockMag's 6 free public AI tools over both Remote MCP (Streamable HTTP & SSE) and Local Stdio Bridge for Claude Desktop, Cursor, Windsurf, VS Code, ChatGPT, and custom AI agents.
🌐 Live Endpoints & Discovery Manifests
Resource | Canonical Production URL | Auth Required |
Public Remote MCP Endpoint (SSE + HTTP POST) |
| None (100% Free) |
MCP Discovery Manifest |
| None |
OpenAPI 3.1 Schema (ChatGPT Actions) |
| None |
LLM Documentation Index |
| None |
Free Online A4 Invoice Generator | None | |
Free Timesheet & Overtime Calculator | None | |
Merchant Cloud POS & E-Shop OS | Free Plan Available |
Related MCP server: eyeot-mcp
🛠️ Included Free Public MCP Tools (Zero API Key Required)
1. search_public_stores
Searches verified public E-Shop storefronts and merchants on BlockMag Marketplace by store name, industry keyword, country, or city.
Parameters:
query(string, optional): Store name, industry keyword, or city.country(string, optional): Country filter (e.g.,"United Kingdom","United States","Romania").limit(integer, optional, default15): Maximum number of stores to return.
2. search_public_catalog
Searches live products and shelf barcodes (EAN-13 / UPC) across verified public store catalogs on BlockMag, with optional store subdomain and maximum price filters.
Parameters:
query(string, required): Product name, EAN-13 barcode, or keyword.subdomain(string, optional): Filter within a specific merchant ({subdomain}.blockmag.com).max_price(number, optional): Maximum unit price filter.limit(integer, optional, default20): Maximum number of products to return.
3. get_public_store_details
Retrieves public storefront details, contact information, currency, and featured catalog items for a specific BlockMag store subdomain.
Parameters:
subdomain(string, required): Store subdomain (e.g."freshbakery"forhttps://freshbakery.blockmag.com).
4. generate_free_invoice
Stateless public calculation engine: computes multi-VAT invoice totals (Net, VAT, Gross across global VAT rates 0%–27%) and generates a direct printable A4 PDF preview URL via BlockMag Free Invoice Generator.
Parameters:
currency(string, default"EUR"): ISO currency code (GBP,USD,EUR,RON,CHF, etc.).invoice_number(string, optional): Document series and number (e.g."INV-2026-001").issuer(object, required):{ name, tax_id, address }client(object, required):{ name, tax_id, address }items(array, required): Array of{ description, quantity, unit_price, vat_percent }
5. calculate_timesheet
Stateless public calculation engine: calculates freelancer/contractor billable shift hours, hourly rates, tax deductions, and returns a direct printable A4 Timesheet PDF preview URL via BlockMag Free Timesheet Calculator.
Parameters:
contractor_name(string, required)client_name(string, optional)hourly_rate(number, required)currency(string, default"EUR")tax_rate(number, default0)entries(array, required): Array of{ date, hours, task_description }
6. verify_invoice_qr
Validates a cryptographic BlockMag invoice verification hash or B2B partner Goods Reception QR code.
Parameters:
verification_code(string, required): Verification hash or QR token from a BlockMag document.
⚡ Quick Start Configuration
Option A: Direct Remote MCP Connection (Recommended — Zero Install)
For MCP clients that support remote SSE or Streamable HTTP servers (Cursor, Windsurf, Claude Desktop Remote MCP, Antigravity):
{
"mcpServers": {
"blockmag-public": {
"url": "https://blockmag.com/api/mcp/public"
}
}
}Option B: Local Node.js Stdio Bridge (Zero Dependencies, Node >= 18)
For MCP clients configured via command / stdio:
git clone https://github.com/AddrianC/blockmag-mcp-server.git
cd blockmag-mcp-serverAdd to your claude_desktop_config.json or .cursor/mcp.json:
{
"mcpServers": {
"blockmag-public": {
"command": "node",
"args": ["/absolute/path/to/blockmag-mcp-server/index.mjs"]
}
}
}🔐 Optional: Authenticated Tenant Hands-Free ERP Mode (24 Additional Tools)
Active merchants on BlockMag.com/sellers can generate a Sanctum MCP Token from Billing → MCP & AI Autonomous to unlock 24 voice-first operational tools on https://blockmag.com/api/mcp/tenant (issuing live invoices, recording payments, autonomous VAT expense categorization, stock & warehouse reception notes, BOM manufacturing recipes, and staff attendance).
🔗 Official Links
Marketplace & In-Store Scan & Go: https://blockmag.com
Merchant Cloud POS, Invoicing & ERP: https://blockmag.com/sellers
Technology Radar & AI Architecture: https://blockmag.com/tech-radar
Free Online Invoice Generator: https://blockmag.com/tools/invoice-generator
Free Timesheet & Hours Calculator: https://blockmag.com/tools/timesheet-calculator
Available Tools
6 toolscalculate_timesheetC
Stateless public tool: calculates freelancer/contractor billable hours, rates, tax deductions, and A4 timesheet preview URL.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | ||
| currency | No | EUR | |
| tax_rate | No | ||
| client_name | No | ||
| hourly_rate | Yes | ||
| contractor_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden; it does contribute real behavioral facts by calling itself 'stateless' and 'public' (no persistence, no auth) and by disclosing that a preview URL is produced. It omits error behavior, whether entries are validated, and how currency/tax defaults behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the key scope front-loaded and zero filler. It is efficient, though for a six-parameter tool it is arguably under-sized rather than over-sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Six parameters at 0% schema coverage, no annotations, and no output schema mean the description is the only source of semantics — and it addresses none of the parameter-level questions. Mentioning the preview URL partially covers the return value, but not enough for a computational tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. It gestures at the concepts (hours, rates, tax deductions) but never explains currency defaulting to EUR, tax_rate defaulting to 0, the optional client_name, or the expected format of entry dates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('calculates') with a concrete resource list: billable hours, rates, tax deductions, and an A4 timesheet preview URL. The purpose is unambiguous, though it never explicitly contrasts itself with the invoice-oriented siblings such as generate_free_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'stateless public tool' implies no auth or persistence, but there is no statement of when to use this over generate_free_invoice or what prerequisites exist. An agent must infer the boundary from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_free_invoiceB
Stateless public tool: generates structured invoice calculation with VAT breakdown and direct A4 printable preview URL (does not save to a tenant account).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| client | Yes | ||
| issuer | Yes | ||
| currency | No | EUR | |
| invoice_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description usefully discloses that the tool is stateless and does not persist to a tenant account, which is genuine behavioral context. It leaves out auth requirements, whether the returned preview URL expires, and whether generation has side effects or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the key constraint ('stateless', not saved) front-loaded. Efficient, though the parenthetical could be integrated more smoothly and no structural breaks aid scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 0% schema coverage on a nested 5-parameter input means the description carries the full burden, and it under-delivers. It never describes the shape of the returned calculation or preview URL, nor the item/issuer/client fields an agent must supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 5 parameters including nested objects and arrays, yet the description explains none of them. It mentions VAT breakdown, hinting at vat_percent per item, but issuer/client structure, currency default, and optional invoice_number are wholly undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('generates structured invoice calculation') plus output artifacts (VAT breakdown, A4 printable preview URL). The 'stateless public tool' framing and 'does not save to a tenant account' clearly separate it from sibling tools like verify_invoice_qr, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The stateless/public framing implies this is a one-off calculation-and-preview tool rather than an account operation, and the 'does not save' clause implies when-not. However, no explicit when-to-use guidance or named alternative is given for scenarios like verifying or persisting an existing invoice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_store_detailsA
Retrieves public storefront details, contact information, currency, and featured catalog items for a specific BlockMag store subdomain.
| Name | Required | Description | Default |
|---|---|---|---|
| subdomain | Yes | Store subdomain (e.g. "freshbakery" for freshbakery.blockmag.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Retrieves' implies a read-only, public (likely unauthenticated) operation, and the enumerated return fields give a useful preview of what comes back. It does not address behavior for a nonexistent subdomain, rate limits, or whether private fields are excluded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and the scoping parameter both appear immediately. Slightly over-enumerated on returned fields, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, non-nested read tool with no output schema, the description is close to sufficient: it covers what is fetched and what the parameter identifies. Only edge-case behavior (invalid/nonexistent subdomain) is unaddressed, which is a minor gap at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already gives a concrete format example ('freshbakery' for freshbakery.blockmag.com). The description only restates that the parameter identifies a 'specific BlockMag store subdomain', adding no constraint or normalization detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieves') and a concrete resource set (storefront details, contact info, currency, featured catalog items) scoped to a BlockMag store subdomain. An agent can distinguish it from search_public_stores, which locates stores rather than returning one store's details, though the description never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific BlockMag store subdomain' implies you must already know the subdomain, which implicitly separates it from search_public_stores. However, there is no explicit when-to-use, when-not-to-use, or named alternative, so the routing must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_public_catalogB
Searches for products across verified public store catalogs on BlockMag with optional store subdomain and price filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Product name, barcode, or keyword | |
| max_price | No | Optional maximum unit price filter | |
| subdomain | No | Optional store subdomain to filter within a specific merchant |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It usefully conveys that only 'verified public' catalogs are searched, implying no auth and read-only behavior, but says nothing about result ordering, pagination via limit, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though the trailing modifier list is somewhat generic and could have carried more discriminating detail at the same length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no annotations, and no output schema, an agent needs more than the description gives: the effect of limit, whether results are paginated, and what a returned product record looks like are all unstated. It is adequate to call the tool but not to predict its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the schema already documents query, subdomain, and max_price. The description only restates the subdomain and price filters without adding format, matching semantics, or default behavior for limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Searches for products across verified public store catalogs') and scopes it to a catalog search, which implicitly distinguishes it from the sibling search_public_stores. It is clear what the tool returns conceptually, though it never names the store-level sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'with optional store subdomain and price filters' hints at when to use the tool (broad product search with narrowing filters), but there is no explicit when-to-use, when-not-to-use, or routing to search_public_stores for store lookup. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_public_storesC
Searches verified public E-Shop stores and companies on BlockMag by name, keyword, country, or city.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Store name, industry keyword, or city | |
| country | No | Optional country filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Verified' and 'public' usefully signal that results are limited to vetted, publicly listed entities, but there is nothing about result caps/limit behavior, ordering, pagination, or what a match record contains for a read tool with a default limit of 15.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and zero filler. It is efficient but too thin to be exemplary given the unresolved sibling overlap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three optional parameters, no annotations, and no output schema means the description must explain what comes back and how to narrow results; it explains neither. The undefined boundary with search_public_catalog and get_public_store_details is the most consequential omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: query and country are documented in the schema, only limit is bare. The description's 'by name, keyword, country, or city' largely restates the query/country field descriptions and adds no syntax, matching, or limit-cap semantics. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches) and resource (verified public E-Shop stores and companies) plus the searchable facets (name, keyword, country, city). It does not, however, distinguish itself from the sibling search_public_catalog or explain how it relates to get_public_store_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus search_public_catalog (which reads as an almost identical search entry point) or when to follow up with get_public_store_details. The only implied usage is 'you want to find stores', which the name already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_invoice_qrC
Validates an invoice dynamic verification hash or B2B partner QR code.
| Name | Required | Description | Default |
|---|---|---|---|
| verification_code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and only says it validates a code. It does not disclose what validation entails (signature/hash check, lookup), what is returned on success or failure, whether this requires authentication, or how errors are surfaced. This is a significant gap for a verification tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler; the purpose is stated immediately. It is appropriately sized for what it attempts, though the brevity reflects under-specification rather than efficiency in the other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% parameter description coverage, the description is not complete enough for an agent to invoke this tool confidently. It omits return behavior, error semantics, and the required input format for verification_code, all of which the structured fields do not provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, so the description must compensate. It hints that the parameter accepts either an invoice dynamic verification hash or a B2B partner QR code, but does not specify the expected string format, whether QR content should be raw/base64/URL, or any length/encoding constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Validates') and two specific resource types (invoice dynamic verification hash, B2B partner QR code), clearly distinguishing it from the sibling search, catalog, invoice-generation, and timesheet tools. It is clear what the tool does at a high level, though it doesn't say what a successful validation produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus alternatives, no prerequisites, and no mention of the verification flow context. The verb implies a verification use case, but the agent gets no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
calculate_timesheet - First observed
generate_free_invoice - First observed
get_public_store_details - First observed
search_public_catalog - First observed
search_public_stores - First observed
verify_invoice_qr
TDQS
Scored across 6 tools
Each tool has a clearly distinct target: store search, catalog search, store details, invoice generation, invoice verification, and timesheet calculation. The two search tools are separated by resource type (stores vs. products), and the invoice-related tools are separated by action (generate vs. verify).
All tool names use consistent snake_case and follow a predictable verb_noun pattern: search_public_stores, search_public_catalog, get_public_store_details, generate_free_invoice, verify_invoice_qr, calculate_timesheet. Minor variation in explicitly including 'public' does not undermine the pattern.
Six tools is well-scoped for a public server covering store discovery plus a few stateless business calculators. Each tool appears to earn its place without excessive surface area.
The store side covers search, catalog search, and store details, while the invoice/timesheet side covers generation, verification, and calculation. There are minor gaps such as direct product-detail retrieval or store category browsing, but the core public workflows are represented.
Maintenance
Related MCP Connectors
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenance37 MCP servers for agentic commerce and Brazilian services. Covers Stripe ACP, x402 (Coinbase), AP2 (Google), Google UCP, plus 14 traditional Brazilian payment rails, fiscal, banking, communication, logistics, ERP, identity, and crypto APIs. ~480 tools. Supports stdio and Streamable HTTP.275MIT
- AlicenseCqualityDmaintenanceAn MCP server that bridges AI agents to the eyeot ERP, exposing ~600 business actions (CRM, sales, stock, HR, finance, etc.) as MCP tools over stdio via OAuth 2.1 authentication.3315 PyPI1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to call 16 small, deterministic, read-only tools over a free, no-auth remote streamable HTTP MCP endpoint, covering business idea scoring, price headroom, hotel OTA commissions, open-source SaaS swaps, ads policy notice risk, App Store 4.2 prechecks, and Japan trip planning. Each tool is also exposed as a plain JSON API with OpenAPI docs.MIT
- AlicenseNot gradedqualityAmaintenanceExposes French electronic invoicing as a local stdio MCP server, letting an AI client create EN 16931-compliant Factur-X invoices with guaranteed legal numbering, client and organization management, and invoice history. It can also submit a generated invoice to a French e-invoicing platform (PDP) after explicit confirmation.5AGPL 3.0