npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

taste-filipino-mcp

v1.1.0

Published

Connect Claude Code to Taste Filipino — manage B2B orders, accounts, shipments and customer messages directly from your editor.

Readme

Taste Filipino MCP Server

Connect Claude Code to Taste Filipino — manage B2B orders, accounts, shipments, customer messages, and generate AI ads directly from your editor.

Works with any project (Laravel, Vue, React, Node, etc.).


Quick Setup (2 minutes)

1. Generate an MCP secret

In your Taste Filipino Laravel .env, add:

MCP_SECRET=some-long-random-string

Generate one: openssl rand -hex 32

2. Add to your project

Create .mcp.json in your project root:

{
  "mcpServers": {
    "taste-filipino": {
      "command": "npx",
      "args": ["-y", "taste-filipino-mcp"],
      "env": {
        "TASTE_FILIPINO_URL": "https://your-api.example.com/api",
        "TASTE_FILIPINO_SECRET": "your-secret-here"
      }
    }
  }
}

3. Restart Claude Code

After saving .mcp.json, restart Claude Code (or run /mcp to reload servers). Verify with:

"What orders need to go out today?"

Claude should respond with today's shipment list. That's it — you're connected.


Available Tools

Ad Generation

| Tool | Description | Example prompt | |---|---|---| | create_ad | Parse a plain-language ad request with AI, build the brand prompt, and queue image generation in one step | "Make me 4 ads with the ube packaging and lattes on a countertop. Text: Taste Ube now!" | | list_ads | List ad generation batches with their current status | "Show all generated ad batches" | | get_ad | Get full details of a batch including image URLs and approval status | "Show me ad generation 42 with all its images" | | approve_ad_image | Approve a generated image | "Approve image 7 from ad generation 42" | | reject_ad_image | Reject a generated image | "Reject image 3 — the composition is off" |

B2B Operations

| Tool | Description | Example prompt | |---|---|---| | get_daily_operations_overview | Combined daily summary: shipments + messages + warnings | "Give me the daily operations overview" | | get_orders_due_today | All orders due or overdue for shipment, with per-order warnings | "Which orders need to go out today?" | | list_orders | List B2B orders, filtered by status or account | "Show all unconfirmed orders" | | get_order | Full order details by ID or order number | "Show me order MSB-2026-0042" | | list_accounts | List B2B accounts, filter by lifecycle/segment/search | "List all active horeca accounts" | | get_account | Account details with recent orders and messages | "Everything about account 7" | | list_pending_messages | Unresolved customer support messages | "Any messages waiting for a reply?" | | get_pending_customer_replies | Messages awaiting reply, priority-flagged after 24 h | "Which customers haven't heard back?" | | prepare_customer_email | Fetch full context to draft a reply — never auto-sends | "Draft a reply to message 42" |


Usage Examples

Generate AI ads

"Make me 4 ads with the ube packaging in the frame and desserts and lattes
 next to it on a countertop. Including the text: Taste Ube now!"

Claude will:

  1. Parse your description with AI to extract scene, copy, and composition details
  2. Build the full brand prompt using the Taste Filipino brandkit
  3. Queue image generation (4 variants)
  4. Return the ad generation ID

Check progress:

"Show me ad generation 12 — are the images ready?"

Once status is "generated", image URLs appear in the response. Review them and approve or reject:

"Approve image 3 from ad generation 12."
"Reject image 1 — the colours look off."

Ad generation statuses:

| Status | Meaning | |---|---| | draft | Created, not yet generating | | prompt_generated | Brand prompt built, ready to generate | | generating | Image generation in progress | | generated | Images ready for review | | approved | Batch approved | | rejected | Batch rejected | | failed | Generation failed (check errorMessage) |


Daily operations

"Give me the daily operations overview."

Claude will summarize today's shipments, pending customer messages, and any warnings in one shot.

Check shipments

"Which orders are due to go out today?"
"Are there any overdue orders?"

Manage orders

"Show all orders with status ingediend."
"Get the full details of order MSB-2026-0139."

Customer messages

"Which customers are still waiting for a reply?"
"Draft a reply to message 12."

Claude will fetch the full message context and compose a draft — you review it before anything is sent.

Accounts

"List all active horeca accounts."
"Give me everything you know about account 7."

Order Statuses

| Status | Meaning | |---|---| | concept | Draft | | ingediend | Submitted | | bevestigd | Confirmed | | in-productie | In production | | verzonden | Shipped | | geleverd | Delivered | | geannuleerd | Cancelled |


Environment Variables

| Variable | Required | Description | |---|---|---| | TASTE_FILIPINO_URL | Yes | Base URL of the Laravel API (e.g. https://your-api.example.com/api) | | TASTE_FILIPINO_SECRET | Yes | Shared secret — must match MCP_SECRET in your Laravel .env |


Troubleshooting

"TASTE_FILIPINO_SECRET environment variable is required" error

Check that both env vars are set in your .mcp.json. Restart Claude Code after any change.

"API error (401)"

Your secret doesn't match the MCP_SECRET in the Laravel API. Make sure both values are identical.

Tools not showing up

Run /mcp in Claude Code to check server status. Make sure Node.js 18+ is installed and available in your PATH.

Ad generation stuck on "generating"

The image generation runs as a background queue job. Make sure your Laravel queue worker is running:

php artisan queue:work

CI/CD: Auto-publish to npm

This repo includes a GitHub Actions workflow (.github/workflows/publish-npm.yml) that runs on every push to main that touches the mcp/ directory.

What it does:

  1. Installs dependencies
  2. Builds the TypeScript source
  3. Bumps the patch version automatically
  4. Commits the version bump back to main
  5. Publishes the new version to npm

Required GitHub secret:

Add this repository secret in GitHub:

| Name | Value | |---|---| | NPM_TOKEN | Your npm access token (Automation or Publish token) |

GitHub path: Settings → Secrets and variables → Actions → New repository secret


Architecture

Claude Code (AI tool)
      │  stdio
      ▼
taste-filipino-mcp  (this package)
      │  HTTP + X-MCP-Secret
      ▼
Laravel API  (/api/mcp/*)
      │  ┌─ orders, accounts, messages, shipments
      │  └─ ad generation (AI parsing → prompt build → image queue)
      ▼
Database + Image storage

The MCP server authenticates to the Laravel API using a shared secret passed via the X-MCP-Secret header. All MCP endpoints are grouped under /api/mcp/* and protected by the EnsureMcpSecret middleware.

For ad generation, the Laravel side uses Claude (Haiku) to parse the natural language description into structured form fields, then builds a brand-consistent image prompt using the Taste Filipino brandkit, and dispatches image generation to the queue.