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

wishfinity-mcp-plusw

v1.2.2

Published

MCP server for +W (Wishfinity Add to Wishlist) - save any product to your universal wishlist. Works with Claude, ChatGPT, Gemini, LangChain, and any MCP client.

Readme

+W MCP Server (Wishfinity)

+W is a universal "save for later" action for commerce. This MCP server lets AI assistants save any product URL to a user's Wishfinity wishlist with one click.

Works with Claude, ChatGPT, Gemini, LangChain, OpenAI Agents SDK, and any MCP-compatible client.

npm version License: MIT

What it does

When an AI recommends a product, it can offer +W Add to Wishlist. The user clicks the link, and the product is saved to their Wishfinity account — ready for later purchase or gifting.

User: "Find me a good espresso machine under $200"

AI: Here are 3 options...
    [+W Add to Wishlist] [View on Amazon]

Quick start

Option 1: Local installation (stdio transport)

Best for Claude Desktop, ChatGPT Desktop, Cursor, VS Code, and local development.

npm install wishfinity-mcp-plusw

Add to your MCP client configuration:

{
  "mcpServers": {
    "wishfinity": {
      "command": "npx",
      "args": ["wishfinity-mcp-plusw"]
    }
  }
}

Option 2: Remote endpoint (HTTP transport)

Best for server-side agents, LangChain production deployments, and hosted AI applications.

https://mcp.wishfinity.com/mcp

Or use the Cloudflare Workers URL:

https://wishfinity-mcp-plusw.wishfinity.workers.dev/mcp

Platform Setup Guides

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "wishfinity": {
      "command": "npx",
      "args": ["wishfinity-mcp-plusw"]
    }
  }
}

ChatGPT Desktop

When MCP support is available, add to your ChatGPT MCP configuration:

{
  "mcpServers": {
    "wishfinity": {
      "command": "npx",
      "args": ["wishfinity-mcp-plusw"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "wishfinity": {
      "command": "npx",
      "args": ["wishfinity-mcp-plusw"]
    }
  }
}

LangChain

from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent

async def main():
    client = MultiServerMCPClient({
        "wishfinity": {
            "command": "npx",
            "args": ["wishfinity-mcp-plusw"],
            "transport": "stdio",
        }
    })
    
    tools = await client.get_tools()
    agent = create_agent("openai:gpt-4", tools)
    
    result = await agent.ainvoke({
        "messages": [{"role": "user", "content": "Find me a coffee maker and save it to my wishlist"}]
    })

For production (HTTP transport):

client = MultiServerMCPClient({
    "wishfinity": {
        "url": "https://mcp.wishfinity.com/mcp",
        "transport": "streamable_http",
    }
})

OpenAI Agents SDK

from agents import Agent, Runner
from agents.mcp import MCPServerStdio

async def main():
    async with MCPServerStdio(
        name="wishfinity",
        params={
            "command": "npx",
            "args": ["wishfinity-mcp-plusw"],
        },
    ) as server:
        agent = Agent(
            name="Shopping Assistant",
            instructions="Help users find products and save them to wishlists.",
            mcp_servers=[server],
        )
        
        result = await Runner.run(agent, "Find a good gift for a coffee lover and save it")
        print(result.final_output)

Hugging Face Agents

from huggingface_hub import Agent

agent = Agent(
    model="meta-llama/Llama-3.1-70B-Instruct",
    mcp_servers=[{
        "command": "npx",
        "args": ["wishfinity-mcp-plusw"]
    }]
)

response = agent.run("Find me running shoes under $150 and save to wishlist")

How it works

  1. AI calls the add_to_wishlist tool with a product URL
  2. MCP server returns a Wishfinity link: https://wishfinity.com/add?url=...
  3. User clicks the link → logs in (first time only) → product is saved
  4. User can organize, share, or purchase later

No API keys required. Authentication happens on Wishfinity's website when the user clicks the link.


Tool: add_to_wishlist

Input

| Parameter | Type | Required | Description | | --- | --- | --- | --- | | url | string | Yes | Product page URL |

Output

| Field | Type | Description | | --- | --- | --- | | action_url | string | Wishfinity link to open in browser | | requires_user_action | boolean | Always true (user must click) | | display_text | string | Suggested button label |

Example

// Input
{ "url": "https://amazon.com/dp/B0EXAMPLE" }

// Output
{
  "action_url": "https://wishfinity.com/add?url=https%3A%2F%2Famazon.com%2Fdp%2FB0EXAMPLE",
  "requires_user_action": true,
  "display_text": "Open to add to Wishfinity"
}

When to offer +W

AI clients should offer +W when:

  • Explicit requests: "save for later," "add to wishlist," "bookmark this"
  • After recommending products: Proactively offer to save shown items
  • Indecision moments: "maybe later," "too expensive right now," "need to think about it"
  • Gift context: "for my mom," "birthday gift," "perfect for my friend"

See aliases.json for the full list of trigger phrases.


Transports

| Transport | Use Case | Endpoint | |-----------|----------|----------| | stdio | Local clients (Claude Desktop, Cursor, etc.) | npx wishfinity-mcp-plusw | | HTTP | Remote/server-side agents | https://mcp.wishfinity.com/mcp |


Button kit

The /button-kit folder contains optional UI assets (SVG icon, HTML/CSS snippets) if you want a consistent +W button appearance.

CDN URLs:

  • Small: https://cdn.jsdelivr.net/npm/wishfinity-mcp-plusw@latest/button-kit/Wishfinity-Button-Small.svg
  • Medium: https://cdn.jsdelivr.net/npm/wishfinity-mcp-plusw@latest/button-kit/Wishfinity-Button-Medium.svg
  • Large: https://cdn.jsdelivr.net/npm/wishfinity-mcp-plusw@latest/button-kit/Wishfinity-Button-Large.svg

Documentation


Links


License

MIT