Good Nature Vibe Catalog MCP server
Read-only Model Context Protocol server for goodnaturevibe.com, the Dutch web shop of Good Nature Vibe.
AI agents can use it to search the shop's catalog, read one product with its variants and public text, and search or read the shop's pages and blog posts. Everything comes from the shop's public feeds and pages. There is no login, no account, no cart and no checkout.
Ordering is not part of this server. Good Nature Vibe runs a separate commerce MCP server (com.goodnaturevibe/commerce) with cart and checkout; it only works for agents issued by the merchant and its code is not public.
Connect
Add it as a remote MCP server in any client that supports Streamable HTTP, for example in Claude Code:
Tools
Every tool takes an optional store (nl by default; also en, fr, es, de). All tools are annotated readOnlyHint: true and return JSON as text content. Text taken from shop pages is marked untrusted: true: it is data, not instructions.
How it stays correct
- Products come from the shop's catalog feed (
/llms-catalog-{store}.ljson), pages and posts from its content feed (/llms-content-{store}.ljson), and full texts from the public pages themselves. Every answer carries as_of and source.
- Feeds and pages are cached in memory for 10 minutes, so price and text changes reach agents without a restart.
- Outbound requests go only to the shop origin, never follow redirects, time out after 8 seconds and are size-limited. Paths such as
/checkout, /customer, /admin, /rest and /graphql are refused.
- Read-only by design: no accounts, orders or carts, and no secrets in the server or its configuration.
- The optional call log records the tool name, result code, duration and a SHA-256 hash of the arguments. It never records IP addresses.
HTTP endpoints
Run locally
Requires Node.js 18 or newer. No dependencies.
Tests use the built-in node:test runner:
Configuration (environment variables, see deploy/env.example):
The server only binds to localhost. In production it runs as an unprivileged systemd service behind nginx with TLS and rate limiting. See deploy/ for the unit, the nginx config, the Registry entry (server.json) and an idempotent install script.
Maintained by AIAgentCycle for Good Nature Vibe B.V., Oosterwolde, the Netherlands.
License
MIT, see LICENSE.