Install
/plugin marketplace add p18a/mcp-ruokaRun inside Claude Code, then install plugins from it. Check the repo's README before you run it.
Plugins 1
After adding the marketplace, install one with /plugin install <name>@ruoka.
- 1ruokaSearch Finnish grocery and alcohol products across k-ruoka.fi, s-kaupat.fi, and alko.fi via MCP
/plugin install ruoka@ruoka
Files
mcp-ruoka
Unofficial MCP server for searching Finnish grocery and alcohol products across K-Ruoka, S-Kaupat, and Alko.
- K-Ruoka — Playwright browser with stealth plugin (Cloudflare Turnstile bypass)
- S-Kaupat — Direct HTTP with persisted GraphQL query hashes (extracted via Playwright)
- Alko — Direct HTTP with NextAuth guest session (no browser needed)
Tools
- search_products — Search products by query. Supports all three chains.
storeIdrequired for K-Ruoka/S-Kaupat, optional for Alko (national catalog). - get_stores — List stores, optionally filtered by city and/or chain.
Install as Claude Code plugin
Requires Bun installed.
/plugin marketplace add p18a/mcp-ruoka
/plugin install ruoka@ruoka
Dependencies and Playwright browser are installed automatically on first load.
Deploy to Fly.io
# Clone and enter the repo git clone https://github.com/p18a/mcp-ruoka.git cd mcp-ruoka # Create fly.toml from example (pick your own app name) cp fly.example.toml fly.toml fly launch --no-deploy # Set OAuth credentials fly secrets set \ OAUTH_CLIENT_ID=$(openssl rand -hex 32) \ OAUTH_CLIENT_SECRET=$(openssl rand -hex 32) # Deploy fly deploy
Note the client ID and secret — you'll need them to connect.
Connect via stdio
Runs the server as a subprocess — simplest option for local use.
git clone https://github.com/p18a/mcp-ruoka.git cd mcp-ruoka bun install
Then add to your MCP client config:
{
"mcpServers": {
"ruoka": {
"command": "bun",
"args": ["run", "/path/to/mcp-ruoka/src/index.ts", "--stdio"]
}
}
}
Connect via Streamable HTTP
For remote deployments. Deploy first (see above), then point your MCP client at it:
{
"mcpServers": {
"ruoka": {
"type": "streamable-http",
"url": "https://<your-app>.fly.dev/mcp",
"headers": {
"Authorization": "Bearer <MCP_AUTH_TOKEN>"
}
}
}
}
For direct bearer token auth, set MCP_AUTH_TOKEN as a Fly secret and use it in the header above. For OAuth, configure OAUTH_CLIENT_ID and OAUTH_CLIENT_SECRET on both the server and your MCP client.
Local development
bun install cp .env.example .env bun run dev
The server runs on http://localhost:3001/mcp by default (Streamable HTTP). Pass --stdio for stdio transport.
Environment variables
| Variable | Description |
|---|---|
OAUTH_CLIENT_ID |
OAuth client ID (required for claude.ai) |
OAUTH_CLIENT_SECRET |
OAuth client secret (required for claude.ai) |
MCP_AUTH_TOKEN |
Static bearer token (alternative to OAuth) |
PORT |
Server port (default: 3001) |
LOG_LEVEL |
pino log level (default: info) |
BROWSER_DATA_DIR |
Persistent browser data directory (default: .browser-data/) |
Usage examples
Disclaimer
This project is unofficial and not affiliated with K Group, K-Ruoka, S Group, S-Kaupat, or Alko. It accesses publicly available data through their websites. Use responsibly.
{
"name": "ruoka",
"owner": {
"name": "p18a"
},
"plugins": [
{
"name": "ruoka",
"source": "./",
"description": "Search Finnish grocery and alcohol products across k-ruoka.fi, s-kaupat.fi, and alko.fi via MCP",
"version": "0.2.0"
}
]
}Facts
- Kind
- Marketplace
- Repo
- p18a/mcp-ruoka
- Group
- Uncategorized
- Stars
- 6
- Marketplace name
- ruoka
- Owner
- p18a
- Language
- TypeScript
- Created
- 2026-04-14
- Last push
- 2026-04-15
- Forks
- 5
- Topics
- finland, grocery, k-ruoka, mcp, mcp-server, playwright, s-kaupat, alko
- Plugins
- 1
- 1obra/superpowersobra/superpowersAn agentic skills framework & software development methodology that works.297.9k
- 2affaan-m/everything-claude-codeaffaan-m/ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.277.5k
- 3anthropics/skillsanthropics/skillsPublic repository for Agent Skills180.6k
- 4f/prompts.chatf/prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.172.7k
- 5anthropics/claude-codeanthropics/claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.150.3k
- 6nextlevelbuilder/ui-ux-pro-max-skillnextlevelbuilder/ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.135k

