Skip to main content

Model Context Protocol

Grünig-SignTronic Catalog MCP Server

A stateless, authless, read-only Model Context Protocol server that exposes the public Grünig-SignTronic screen-printing catalog — products, jobs, distributors, legal pages and news — to any MCP client or AI assistant, over one standard endpoint.

Setup

Connect a client

The server speaks the Model Context Protocol over Streamable HTTP at a single endpoint. There is no API key and no account — point a client at the URL and its tools appear.

MCP endpoint
https://mcp.grunig-signtronic.com/mcp
Streamable HTTPNo authenticationRead-only
1Recommended

Claude.ai connector

Add it as a custom connector in Claude.

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Paste the endpoint shown above; leave authentication empty.
  4. Save, enable it in a chat, then ask about the catalog.

Use the MCP endpoint shown above

2

ChatGPT

Add it as a custom connector in ChatGPT (Plus, Pro, Team or Enterprise).

  1. Open Settings → Connectors.
  2. Click Create and choose a custom (MCP) connector.
  3. Paste the endpoint shown above as the server URL; set authentication to none.
  4. Save, enable it in a chat, then ask about the catalog.

Use the MCP endpoint shown above

3

MCP Inspector

Inspect and call tools directly from a terminal.

  1. Run the command below.
  2. Choose the Streamable HTTP transport.
  3. Enter the endpoint and click Connect.
  4. Use List Tools / Call Tool to explore.
Run
npx @modelcontextprotocol/inspector

Or let your assistant set it up

Paste this into Claude, ChatGPT or any MCP-aware assistant to add the server and try it in one step:

Setup prompt
Add the remote MCP server "Grünig-SignTronic Catalog" at https://mcp.grunig-signtronic.com/mcp (Model Context Protocol over Streamable HTTP, no authentication) to my MCP client, then list its tools and run search_products with query "coating" to confirm it works.

Call a tool directly (curl)

Every request is a single JSON-RPC POST. This searches the product catalog:

Search products
curl -s https://mcp.grunig-signtronic.com/mcp -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_products","arguments":{"query":"coating","lang":"en"}}}'

Reference

Tools

Every entity follows a uniform list / search + get shape: list and search tools return compact summaries, get_* tools return full detail. All tools are read-only, and every tool except ping takes a lang of “en” or “de”. This reference is generated from the server's own tool definitions, so it always matches what the endpoint exposes.

ping

Ping

Liveness check — returns 'pong' and the active environment. Takes no arguments.

Returns: A short text string, e.g. pong (production).

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "ping",
    "arguments": {}
  }
}

search_products

Search products

Search the active Grünig-SignTronic product catalog in the requested language. The query is a case-insensitive substring matched across all product text — name, short and full description, features, benefits, applications and specifications — so model numbers and technical terms (e.g. "1270", "UV-LED") match too. Optionally filter by category (see list_categories for valid slugs). Returns compact product summaries (slug, name, short description, category, canonical URL). Use get_product for full detail.

ParameterTypeReq.Description
querystring (1–200)requiredCase-insensitive search term.
lang"en" | "de"requiredResponse language for the catalog content.
limitinteger (1–50)optionalMax results. Default 10.
categorystring (≤100)optionalCategory slug to filter by (see list_categories).

Returns: { count, results: [{ slug, name, shortDescription, category, url }] }.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_products",
    "arguments": {
      "query": "coating",
      "lang": "en"
    }
  }
}

get_product

Get product

Return the full detail of a single active product, resolved by slug (preferred) or id, in the requested language: descriptions, features, benefits, applications, specifications, documents and related-product slugs.

ParameterTypeReq.Description
slugstring (≤200)optionalProduct slug. Provide slug or id.
idstring (≤100)optionalProduct id. Provide slug or id.
lang"en" | "de"requiredResponse language for the catalog content.

Returns: { found, product } — found: false if unknown or inactive.

At least one of slug or id is required.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_product",
    "arguments": {
      "slug": "g-202",
      "lang": "en"
    }
  }
}

list_categories

List categories

List all active product categories in the requested language (slug, name, description). Use a returned slug to filter search_products.

ParameterTypeReq.Description
lang"en" | "de"requiredResponse language for the catalog content.
limitinteger (1–200)optionalMax results. Default 50.

Returns: { count, results: [{ slug, name, description }] }.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_categories",
    "arguments": {
      "lang": "en"
    }
  }
}

list_jobs

List jobs

List open job postings as compact summaries in the requested language. Optionally filter by job type. Use get_job for full detail.

ParameterTypeReq.Description
lang"en" | "de"requiredResponse language for the catalog content.
typestring (≤50)optionalJob type to filter by.
limitinteger (1–200)optionalMax results. Default 50.

Returns: { count, results: [{ slug, title, type, … }] }.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_jobs",
    "arguments": {
      "lang": "en"
    }
  }
}

get_job

Get job

Return the full detail of a single open job, resolved by slug or id, in the requested language: description, requirements, benefits and job type.

ParameterTypeReq.Description
slugstring (≤200)optionalJob slug. Provide slug or id.
idstring (≤100)optionalJob id. Provide slug or id.
lang"en" | "de"requiredResponse language for the catalog content.

Returns: { found, job } — found: false if unknown or closed.

At least one of slug or id is required.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_job",
    "arguments": {
      "slug": "automatiker",
      "lang": "en"
    }
  }
}

list_distributors

List distributors

List distributors as company-level summaries in the requested language (name, address, email, website, coordinates). Optionally filter by country. Person-level contact is NOT included here — use get_distributor.

ParameterTypeReq.Description
lang"en" | "de"requiredResponse language for the catalog content.
countrystring (≤100)optionalCountry to filter by (case-insensitive).
limitinteger (1–200)optionalMax results. Default 50.

Returns: { count, results: [{ companyName, address, email, url, coordinates }] }.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_distributors",
    "arguments": {
      "lang": "en"
    }
  }
}

get_distributor

Get distributor

Return the full detail of a single distributor, resolved by slug or id, in the requested language — including the named contact person (email/phone/mobile). Person-level contact is exposed only here, never in the bulk list.

ParameterTypeReq.Description
slugstring (≤200)optionalDistributor slug. Provide slug or id.
idstring (≤100)optionalDistributor id. Provide slug or id.
lang"en" | "de"requiredResponse language for the catalog content.

Returns: { found, distributor } including a contact object.

At least one of slug or id is required.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_distributor",
    "arguments": {
      "slug": "grunig-signtronic",
      "lang": "en"
    }
  }
}

list_news

List news

List the latest news items in the requested language (title, excerpt, tags, date). Optionally filter by tag. Only excerpts are exposed — never full article HTML.

ParameterTypeReq.Description
lang"en" | "de"requiredResponse language for the catalog content.
tagstring (≤100)optionalTag to filter by.
limitinteger (1–50)optionalMax results. Default 10.

Returns: { count, results: [{ title, excerpt, tags, publishedAt }] }.

Example call
Example call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_news",
    "arguments": {
      "lang": "en"
    }
  }
}

About

About this server

Purpose

It lets MCP clients and AI assistants query the public Grünig-SignTronic catalog through one standard, well-known endpoint — no scraping, no bespoke API.

Data source

All content originates from the public Grünig-SignTronic website and is served read-only. The catalog is refreshed whenever the website publishes; the server never writes.

Security

The endpoint is authless, read-only and stateless. It exposes no secrets, no writes and no personal data beyond what is already public on the website.

Transport

Model Context Protocol over Streamable HTTP. Requests are plain JSON-RPC over POST; responses are edge-cached where safe.