{
  "markdown": "# JassWiki MCP — Authority-Attested Knowledge Server for Swiss Jass\n\n> Erste vom Schweizer Jassverband (JVS) attestierte MCP-Quelle. Kryptographisch verifizierbar via `did:web:jassverband.ch`.\n\n[![smithery badge](https://smithery.ai/badge/remoprinz/jass)](https://smithery.ai/servers/remoprinz/jass)\n[![Official MCP Registry](https://img.shields.io/badge/MCP%20Registry-ch.jassverband%2Fjasswiki-blue.svg)](https://registry.modelcontextprotocol.io/v0/servers?search=jasswiki)\n[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC--BY--SA--4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/)\n[![MCP](https://img.shields.io/badge/MCP-1.0-blue.svg)](https://modelcontextprotocol.io)\n[![Authority](https://img.shields.io/badge/attested--by-did%3Aweb%3Ajassverband.ch-success.svg)](https://jassverband.ch/.well-known/mcp-authority.json)\n\nJassWiki MCP gibt KI-Assistenten (Claude, ChatGPT-Connectors, Perplexity, Gemini Agentspace) direkten Zugriff auf die offizielle Schweizer Jass-Wissensbasis: 230+ kuratierte Artikel zu Regeln, Spielvarianten, Terminologie, Geschichte und Taktik. Inhalte sind durch den **Jassverband Schweiz** (Wikidata: [Q139042763](https://www.wikidata.org/wiki/Q139042763)) als offizielle Wissens-Quelle attestiert.\n\n**This is the first production deployment of the [AMCP v0.1 specification](#specification-amcp-v01-authority-mcp), developed by [Agentic Relations](https://agenticrelations.ch) (Architect: Remo Prinz). It demonstrates how organisations and federations can become cryptographically verifiable knowledge sources for AI agents — beyond traditional SEO and brand visibility.**\n\n**Trust-Chain:**\n- 🇨🇭 [Bundesamt für Kultur — Lebendige Tradition](https://www.lebendige-traditionen.ch/tradition/de/home/traditionen/jassen.html) seit 2011\n- 📖 Zitiert in [deutschsprachigem Wikipedia-Artikel \"Jass\"](https://de.wikipedia.org/wiki/Jass)\n- 🆔 Wikidata: [JassWiki Q137900251](https://www.wikidata.org/wiki/Q137900251), [Jass Q786768](https://www.wikidata.org/wiki/Q786768)\n- 🔐 Ed25519-signierte [JVS-Attestation](https://jassverband.ch/.well-known/mcp-authority.json) ([detached signature](https://jassverband.ch/.well-known/mcp-authority.sig))\n\n---\n\n## Installation\n\n**Endpoint (Streamable HTTP):** `https://jasswiki.ch/mcp/http` — no auth, no API key.\n\n### Claude (claude.ai / Desktop)\n\nSettings → Connectors → *Add custom connector* → URL `https://jasswiki.ch/mcp/http`.\n\n### ChatGPT (Apps & Connectors)\n\nSettings → Connectors → *Add custom app/connector* → URL `https://jasswiki.ch/mcp/http` (requires a paid plan; enable Developer Mode if needed).\n\n### Claude Code (CLI)\n\n```bash\nclaude mcp add --transport http jasswiki https://jasswiki.ch/mcp/http\n```\n\nAfter connecting, the `jasswiki` server exposes three tools.\n\n### Reference URLs (any MCP-compatible client)\n\n```\nMCP Endpoint:    https://jasswiki.ch/mcp/http   (Streamable HTTP)\nHealth:          https://jasswiki.ch/mcp/health\nManifest:        https://jasswiki.ch/.well-known/mcp.json\nAuthority:       https://jassverband.ch/.well-known/mcp-authority.json\nDID Document:    https://jassverband.ch/.well-known/did.json\n```\n\n---\n\n## Tools\n\n### `show_jass_card(query)`\nRender an official **branded JassWiki knowledge card** (jasswiki.ch UI, via the MCP Apps extension / SEP-1865) for a Swiss Jass term, rule, variant or question — with definition, category, related terms and source link. This is the default answer path in hosts that support MCP Apps.\n\n**Example:**\n```\nshow_jass_card(query=\"Karte fällt runter\")\n```\n\n### `search_jass_knowledge(query, limit?)`\nSemantic search across the official JassWiki encyclopedia (230+ articles, Pinecone-backed with keyword fallback). Understands natural-language questions. Returns matching titles, IDs, URLs, and content excerpts.\n\n**Example:**\n```\nsearch_jass_knowledge(query=\"Was gilt, wenn eine Karte runterfällt?\", limit=3)\n```\n\n### `get_term_details(id)`\nRetrieve the full official rule or definition for a specific term ID. Use after `search_jass_knowledge` for verification of exact wording.\n\n**Example:**\n```\nget_term_details(id=\"schieber\")\n```\n\n---\n\n## Example Conversations\n\n**Rule clarification:**\n> User: \"What are the official rules for Schieber-Jass?\"\n> AI: [calls `search_jass_knowledge`] → Returns the canonical Schieber-rules sourced from JassWiki.ch with authority footer.\n\n**Variant lookup:**\n> User: \"Difference between Coiffeur-Schieber and Differenzler?\"\n> AI: [calls `search_jass_knowledge` for both] → Returns comparison sourced from official terminology.\n\n**Tactical reference:**\n> User: \"Welche Verwerfen-Konventionen gibt es im Schieber?\"\n> AI: [calls `search_jass_knowledge`] → Returns tactical signaling conventions with citation.\n\n---\n\n## Verifying the Authority Attestation (W3C Verifiable Credential)\n\nThe JassWiki MCP server is the first MCP service in Switzerland with cryptographically verifiable authority attestation, expressed as a **W3C Verifiable Credential** (Data Model 2.0) signed with the **`eddsa-jcs-2022`** cryptosuite. Any standard W3C VC verification library can confirm it.\n\n### Quick verify with any W3C VC library\n\nThe attestation document is a self-contained Verifiable Credential — fetch and verify in one step:\n\n```bash\ncurl -s https://jassverband.ch/.well-known/mcp-authority.json\n```\n\nThe `proof.proofValue` field contains the signature in multibase base58btc format. Use any of:\n- **Node.js:** [`@digitalbazaar/vc`](https://github.com/digitalbazaar/vc) + [`@digitalbazaar/eddsa-jcs-2022-cryptosuite`](https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite)\n- **TypeScript / Browser:** [`@veramo/credential-w3c`](https://veramo.io/) with `eddsa-jcs-2022` plugin\n- **Python:** [`pyld`](https://github.com/digitalbazaar/pyld) + [`PyNaCl`](https://pynacl.readthedocs.io/) (manual JCS implementation, see below)\n- **Rust:** [`ssi`](https://github.com/spruceid/ssi) crate\n\n### Manual verification (Python, no W3C VC library required)\n\n```bash\npip install pynacl base58\n```\n\n```python\nimport json, hashlib, urllib.request\nimport nacl.signing, base58\n\n# 1. Fetch the VC + DID document\nvc = json.load(urllib.request.urlopen('https://jassverband.ch/.well-known/mcp-authority.json'))\ndid = json.load(urllib.request.urlopen('https://jassverband.ch/.well-known/did.json'))\n\n# 2. Reconstruct the signed hash data per eddsa-jcs-2022\ndef jcs(obj):\n    return json.dumps(obj, sort_keys=True, separators=(',', ':'), ensure_ascii=False).encode('utf-8')\n\nunsigned_doc = {k: v for k, v in vc.items() if k != 'proof'}\nproof_config = {k: v for k, v in vc['proof'].items() if k != 'proofValue'}\n\ndoc_hash = hashlib.sha256(jcs(unsigned_doc)).digest()\nproof_hash = hashlib.sha256(jcs(proof_config)).digest()\nhash_data = proof_hash + doc_hash  # W3C VC Data Integrity ordering\n\n# 3. Decode signature from multibase base58btc\nproof_value = vc['proof']['proofValue']\nassert proof_value.startswith('z')  # 'z' = base58btc multibase prefix\nsignature = base58.b58decode(proof_value[1:])\n\n# 4. Decode public key from DID document\nimport base64\npub_jwk_x = did['verificationMethod'][0]['publicKeyJwk']['x']\npublic_key = base64.urlsafe_b64decode(pub_jwk_x + '==')\n\n# 5. Verify\nnacl.signing.VerifyKey(public_key).verify(hash_data, signature)\nprint('✓ W3C VC verified — JassWiki MCP is officially attested by Jassverband Schweiz')\n```\n\nThe attestation is governed by [JVS Vorstandsbeschluss 2026-06-10 (JVS-VS-2026-06-10-AMCP-01)](https://jassverband.ch/documents/vorstandsbeschluesse/2026-06-10-amcp-attestation.pdf) — the signed board resolution PDF, whose SHA-256 digest is anchored in the credential's `termsOfUse.digestSRI`.\n\n---\n\n## Specification: AMCP v0.1 (Authority-MCP)\n\nJassWiki MCP is the **first production implementation** of **AMCP v0.1** — *An Applied Profile of W3C Verifiable Credentials and DID:web for MCP Server Authority Attestation*.\n\nAMCP is **not a new standard** — it is a thin profile that combines:\n\n| Layer | Existing Standard |\n|---|---|\n| Identity of the authority | [W3C DID Core](https://www.w3.org/TR/did-1.0/) (`did:web` method) |\n| Cryptographic envelope | [W3C Verifiable Credentials Data Model 2.0](https://www.w3.org/TR/vc-data-model-2.0/) |\n| Signature suite | [`eddsa-jcs-2022`](https://w3c.github.io/vc-di-eddsa/) (Ed25519 + JCS canonicalization) |\n| Entity descriptions | [Schema.org](https://schema.org) + JSON-LD |\n| Canonical entity IDs | [Wikidata QIDs](https://www.wikidata.org/) |\n| Server protocol | [Anthropic MCP](https://modelcontextprotocol.io) |\n| Discovery | [HTTP Link header (RFC 8288)](https://datatracker.ietf.org/doc/html/rfc8288) + `.well-known/` |\n\nThe contribution of AMCP is the *combination* — specifying how an organisation declares its official MCP server with cryptographic proof, Wikidata-anchored entity references, and a verifiable trust chain.\n\n**Spec owner & architect:** [Agentic Relations](https://agenticrelations.ch) — founder: Remo Prinz.\n\n📄 **Read the full specification:** [**AMCP v0.1 Working Draft**](./docs/amcp-v0.1-spec.md) (3,600 words; canonical URL `https://agenticrelations.ch/specs/amcp/v0.1`)\n\nThe methodology applies to any organisation, federation, public-sector body, or association that wants to become a cryptographically verifiable knowledge source in the agentic web.\n\nFeedback and adoption inquiries: open an [issue](https://github.com/remoprinz/jasswiki-mcp/issues) or contact `remo@agenticrelations.ch`.\n\n---\n\n## Operator & Authority\n\n- **MCP Operator:** [JassWiki](https://jasswiki.ch) (curator: Remo Prinz, [remo@jassverband.ch](mailto:remo@jassverband.ch))\n- **Attestor:** [Jassverband Schweiz (JVS)](https://jassverband.ch) — `did:web:jassverband.ch`\n- **Co-Curator JassWiki:** Fabian Cadonau ([Trumpf-As.ch](https://trumpf-as.ch))\n\n---\n\n## Data & Licensing\n\n- **Content:** [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)\n- **Bulk corpus:** [HuggingFace JassWiki/jasswiki-corpus](https://huggingface.co/datasets/JassWiki/jasswiki-corpus) (JSONL)\n- **SKOS Taxonomy:** [jasswiki.ch/dataset/taxonomie.jsonld](https://jasswiki.ch/dataset/taxonomie.jsonld)\n- **Attestation documents (mcp.json, did.json, mcp-authority.json):** CC0\n\nAttribution must include the JassWiki.ch link and indicate any modifications.\n\n---\n\n## Status & Reliability\n\n- **Production since:** January 2026\n- **Hosting:** Firebase Cloud Functions, region `us-central1` (low-latency global)\n- **Languages supported:** German (primary), French, Italian, English (ongoing expansion)\n- **Uptime SLA:** Best-effort (99.5%+ historical)\n\nFor service incidents or schema changes, watch the [GitHub releases](https://github.com/remoprinz/jasswiki-mcp/releases).\n\n---\n\n## Contributing\n\nJassWiki content is curated. To suggest factual corrections, terminology updates, or new variants:\n\n1. Open an issue on [JassWiki GitHub](https://github.com/remoprinz/jasswiki) (the public site repo)\n2. Or contact directly: [remo@jassverband.ch](mailto:remo@jassverband.ch)\n3. New entries are reviewed by JVS (4-eyes principle) before publishing\n\nThe MCP server itself (this repository) accepts PRs for documentation improvements, examples, and submission metadata.\n\n---\n\n*Erste öffentlich-rechtliche Authority-MCP der Schweiz.*\n*The first publicly attested MCP knowledge server in Switzerland.*\n",
  "bytes": 11244,
  "sha": "5b8662b658510365eb24c00534f337d27d4227c4cca9405a09d2ecd04be3fc8a",
  "repo_slug": "remoprinz/jasswiki-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ch_jassverband_jasswiki_b842d619/readme"
}