Skip to main content
Glama
AddrianC

BlockMag Public MCP Server

by AddrianC

BlockMag Official Public MCP Server (2024-11-05)

MCP Protocol Free Public Tier Platform License: MIT

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)

https://blockmag.com/api/mcp/public

None (100% Free)

MCP Discovery Manifest

https://blockmag.com/.well-known/mcp.json

None

OpenAPI 3.1 Schema (ChatGPT Actions)

https://blockmag.com/api/v1/openai/public-schema.json

None

LLM Documentation Index

https://blockmag.com/llms.txt / https://blockmag.com/llms-full.txt

None

Free Online A4 Invoice Generator

https://blockmag.com/tools/invoice-generator

None

Free Timesheet & Overtime Calculator

https://blockmag.com/tools/timesheet-calculator

None

Merchant Cloud POS & E-Shop OS

https://blockmag.com/sellers

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, default 15): 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, default 20): 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" for https://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, default 0)

    • 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

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-server

Add 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).


Available Tools

6 tools
calculate_timesheetC

Stateless public tool: calculates freelancer/contractor billable hours, rates, tax deductions, and A4 timesheet preview URL.

NameRequiredDescriptionDefault
entriesYes
currencyNoEUR
tax_rateNo
client_nameNo
hourly_rateYes
contractor_nameYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

NameRequiredDescriptionDefault
itemsYes
clientYes
issuerYes
currencyNoEUR
invoice_numberNo

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
subdomainYesStore subdomain (e.g. "freshbakery" for freshbakery.blockmag.com)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
limitNo
queryYesProduct name, barcode, or keyword
max_priceNoOptional maximum unit price filter
subdomainNoOptional store subdomain to filter within a specific merchant

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
limitNo
queryNoStore name, industry keyword, or city
countryNoOptional country filter

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
verification_codeYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updatesv1.0.0
    • First observedcalculate_timesheet
    • First observedgenerate_free_invoice
    • First observedget_public_store_details
    • First observedsearch_public_catalog
    • First observedsearch_public_stores
    • First observedverify_invoice_qr

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    37 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.
    275
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    An 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.
    33
    15 PyPI
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Exposes 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.
    5
    AGPL 3.0