siteguide
README.md
# siteguide
A forwarding client for the ikeytz website read/link service — the
public, read-only service behind a Ludwigsburg locksmith's main
website. It covers services, fixed prices, service areas, FAQ
entries, knowledge articles and guides, discovery files, and link
composers for that site.
siteguide contains no website logic of its own. It serves
`tools/list` locally from a verbatim capture of the upstream
server's 47 tools (name, title, description and inputSchema; the
capture's outputSchema fields and annotations are not reproduced),
and forwards every `tools/call` to the upstream endpoint. Upstream
results pass through unchanged; a failed hop comes back as a
`siteguide error: ...` text result with `isError` set.
## Upstream
- Default endpoint: `https://www.ikeytz.com/mcp`
- Override: set `IKEYTZ_WEBSITE_MCP_URL` to another streamable-HTTP
MCP endpoint. (The override is a reconstruction; the default
endpoint is the pinned one.)
- No account and no API key are needed.
- The forwarding hop runs `initialize` (protocolVersion
`2025-03-26`, clientInfo `siteguide` / `0.1.0`), then
`notifications/initialized`, then `tools/call`, and honours an
`Mcp-Session-Id` header when the upstream issues one. Replies may
be plain JSON or server-sent events.
## CLI usage
```bash
npx @reneturcios/siteguide get_service_area '{"slug":"pattonville"}'
npx @reneturcios/siteguide site_overview '{}'
npx @reneturcios/siteguide --version
```
Each tool subcommand takes a single JSON argument string, forwards
the call and prints the result as JSON. Exit codes: 0 success, 1 a
forwarded-call error, 2 usage error.
## MCP usage
```bash
npx @reneturcios/siteguide mcp
```
MCP client config:
```json
{
"mcpServers": {
"siteguide": {
"command": "npx",
"args": ["-y", "@reneturcios/siteguide", "mcp"]
}
}
}
```
Unknown tool names, and arguments that are not a JSON object, are
rejected locally with `InvalidParams` before any network hop.
## Docker
```bash
docker run -i ghcr.io/cloudcorprecords/siteguide # stdio MCP server (CMD defaults to "mcp")
docker run --rm ghcr.io/cloudcorprecords/siteguide get_service_area '{"slug":"pattonville"}'
```
## Tools (47)
`site_overview`, `get_business_identity`, `list_nav`,
`list_footer`, `list_locales`, `resolve_locale_url`, `get_prices`,
`get_ort_datetime`, `get_invoice_line_items`, `list_services`,
`get_emergency`, `list_auswahl`, `get_auswahl_item`,
`list_service_areas`, `get_service_area`, `get_geo_office`,
`get_contact`, `get_legal`, `get_about`, `get_partner_info`,
`get_links`, `get_it`, `get_mcp_hub`, `get_review_url`,
`list_faq`, `get_faq`, `list_wissen`, `get_wissen_entry`,
`list_ratgeber`, `get_ratgeber`, `get_page_summary`,
`get_ai_page`, `get_serp_snippet`, `find_by_keyword`,
`get_discovery`, `get_llms_txt`, `get_llms_jsonld`,
`get_llms_serp_txt`, `get_llms_mcp_server`, `get_llms_mcp_web`,
`get_ai_txt`, `get_sitemap_txt`, `list_whatsapp_options`,
`compose_tel_mobile`, `compose_tel_landline`, `compose_whatsapp`,
`compose_mailto`.
## Development
```bash
npm install
npm run build # tsc -> dist/ (dist/cli.js is the bin)
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # tsx src/cli.ts
```
## License
MIT — Copyright (c) 2026 Rene Turcios.
This server cannot be deployed
Maintenance
ActivityNo data
ResponsivenessSyncing