About agent-signal
agent-signal is an MCP server for shopping agents and sellers, pooling shopping-session signals to provide product, pricing, merchant, and market intelligence.
Key features
- 01Aggregated shopping-session signals
- 02Product and category recommendations
- 03Price and merchant reliability checks
- 04Seller competition and rejection analysis
- 05Session and evaluation logging
Use cases
- 01Compare products using other agents’ outcomes
- 02Check whether a product price is a deal
- 03Analyze why shoppers reject a product
MCP support
It exposes 23 MCP tools for shopping intelligence, seller analytics, discovery, and recording shopping sessions and outcomes.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://agent-signal-production.up.railway.app/mcpclaude mcp add --transport http dan24ou-cpu-agent-signal https://agent-signal-production.up.railway.app/mcp{"mcpServers":{"dan24ou-cpu-agent-signal":{"type":"http","url":"https://agent-signal-production.up.railway.app/mcp"}}}Open in Cursor{"servers":{"dan24ou-cpu-agent-signal":{"type":"http","url":"https://agent-signal-production.up.railway.app/mcp"}}}Open in VS Code{"mcpServers":{"dan24ou-cpu-agent-signal":{"type":"http","url":"https://agent-signal-production.up.railway.app/mcp"}}}{"mcpServers":{"dan24ou-cpu-agent-signal":{"serverUrl":"https://agent-signal-production.up.railway.app/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEAgentSignal
The collective intelligence layer for AI shopping agents.
Every agent that connects makes every other agent smarter. 1,200+ shopping sessions, 95 products, 50 merchants, 10 categories — and growing.
Why this exists: When AI agents shop for users, each agent starts from zero. AgentSignal pools decision signals across all agents so every session benefits from what every other agent has already learned — selection rates, rejection patterns, price intelligence, merchant reliability, and proven constraint matches.
Quick Start (30 seconds)
Remote — zero install, instant intelligence:
{
"mcpServers": {
"agent-signal": {
"url": "https://agent-signal-production.up.railway.app/mcp"
}
}
}
Local via npx:
npx agent-signal
Claude Desktop / Claude Code:
{
"mcpServers": {
"agent-signal": {
"command": "npx",
"args": ["agent-signal"]
}
}
}
One Call to Start Shopping Smarter
The smart_shopping_session tool logs your session AND returns all available intelligence in a single call:
smart_shopping_session({
raw_query: "lightweight running shoes with good cushioning",
category: "footwear/running",
budget_max: 200,
constraints: ["lightweight", "cushioned"]
})
Returns:
- Your session ID for subsequent logging
- Top picks from other agents in that category
- What constraints and factors mattered most
- How similar sessions ended (purchased vs abandoned)
- Network-wide stats
23 MCP Tools
Smart Combo Tools (recommended)
| Tool | What it does |
|---|---|
smart_shopping_session | Start session + get category intelligence + similar session outcomes — all in one call |
evaluate_and_compare | Log product evaluation + get product intelligence + deal verdict — all in one call |
Buyer Intelligence — Shop Smarter
| Tool | What it tells you |
|---|---|
get_product_intelligence | Selection rate, rejection reasons, which competitors beat it and why |
get_category_recommendations | Top picks, decision factors, common requirements, average budgets |
check_merchant_reliability | Stock accuracy, selection rate, purchase outcomes by merchant |
get_similar_session_outcomes | What agents with similar constraints ended up choosing |
detect_deal | Price verdict against historical data — best_price_ever to above_average |
get_warnings | Stock issues, high rejection rates, abandonment signals |
get_constraint_match | Products that exactly match your constraints — skip the search |
Seller Intelligence — Understand Your Market
| Tool | What it tells you |
|---|---|
get_competitive_landscape | Category rank, head-to-head win rate, who beats you and why, price positioning |
get_rejection_analysis | Why agents reject your product, weekly trends, what they chose instead |
get_category_demand | What agents are searching for, unmet needs, budget distribution, market gaps |
get_merchant_scorecard | Full merchant report — stock reliability, price competitiveness, selection rates by category |
Discovery & Monitoring
| Tool | What it tells you |
|---|---|
get_budget_products | Best products within a specific budget — ranked by agent selections, with merchant availability |
get_trending_products | Products trending up or down — compares current vs previous period selection rates |
create_price_alert | Set a price alert — triggers when agents spot the product at or below your target |
check_price_alerts | Check which alerts have been triggered by recent agent activity |
Write Tools — Contribute Back
| Tool | What it captures |
|---|---|
log_shopping_session | Shopping intent, constraints, budget, exclusions |
log_product_evaluation | Product considered, match score, disposition + rejection reason |
log_comparison | Products compared, dimensions, winner, deciding factor |
log_outcome | Final result — purchased, recommended, abandoned, or deferred |
import_completed_session | Bulk import a completed session retroactively |
get_session_summary | Retrieve full session details |
Example: Full Agent Workflow
# 1. Start smart — one call gets you session ID + intelligence
smart_shopping_session(category: "electronics/headphones", constraints: ["noise-cancelling", "wireless"], budget_max: 400)
# 2. Evaluate products — get intel as you log
evaluate_and_compare(session_id: "...", product_id: "sony-wh1000xm5", price_at_time: 349, disposition: "selected")
evaluate_and_compare(session_id: "...", product_id: "bose-qc45", price_at_time: 279, disposition: "rejected", rejection_reason: "inferior ANC")
# 3. Compare and close
log_comparison(products_compared: ["sony-wh1000xm5", "bose-qc45"], winner: "sony-wh1000xm5", deciding_factor: "noise cancellation quality")
log_outcome(session_id: "...", outcome_type: "purchased", product_chosen_id: "sony-wh1000xm5")
Every step feeds the network. The next agent shopping for headphones benefits from your data.
Example: Seller Intelligence Workflow
# 1. How is my product performing vs competitors?
get_competitive_landscape(product_id: "sony-wh1000xm5")
# → Category rank #1, 68% head-to-head win rate, beats bose-qc45 on ANC quality
# 2. Why are agents rejecting my product?
get_rejection_analysis(product_id: "bose-qc45")
# → 45% rejected for "inferior ANC", agents chose sony-wh1000xm5 instead 3x more
# 3. What do agents want in my category?
get_category_demand(category: "electronics/headphones")
# → Top demands: noise-cancelling (89%), wireless (82%), unmet need: "spatial audio"
# 4. How does my store perform?
get_merchant_scorecard(merchant_id: "amazon")
# → 34% selection rate, 2% out-of-stock, cheapest option 41% of the time
Categories with Active Intelligence
| Category | Sessions |
|---|---|
| footwear/running | 150+ |
| electronics/headphones | 140+ |
| gaming/accessories | 130+ |
| electronics/tablets | 130+ |
| home/furniture/desks | 120+ |
| fitness/wearables | 118+ |
| electronics/phones | 115+ |
| home/smart-home | 107+ |
| kitchen/appliances | 105+ |
| electronics/laptops | 98+ |
Agent Framework Examples
Ready-to-run examples in /examples:
| Framework | File | Description |
|---|---|---|
| LangChain | langchain-shopping-agent.py | ReAct agent with LangGraph + MCP adapter |
| CrewAI | crewai-shopping-crew.py | Two-agent crew (researcher + shopper) |
| AutoGen | autogen-shopping-agent.py | AutoGen agent with MCP tools |
| OpenAI Agents | openai-agents-shopping.py | OpenAI Agents SDK with Streamable HTTP |
| Claude | claude-system-prompt.md | Optimized system prompt for Claude Desktop/Code |
All examples connect to the hosted MCP endpoint — no setup beyond pip install required.
REST API
Merchant-facing analytics at https://agent-signal-production.up.railway.app/api:
| Endpoint | Description |
|---|---|
GET /api/products/:id/insights | Product analytics — consideration rate, rejection reasons |
GET /api/categories/:category/trends | Category trends — top factors, budgets, attributes |
GET /api/competitive/lost-to?product_id=X | Competitive losses — what X loses to and why |
GET /api/sessions | Recent sessions (paginated) |
GET /api/sessions/:id | Full session detail |
POST /api/admin/aggregate | Trigger insight computation |
GET /api/health | Health check |
Self-Hosting
git clone https://github.com/dan24ou-cpu/agent-signal.git
cd agent-signal
npm install
cp .env.example .env # set DATABASE_URL to your PostgreSQL
npm run migrate
npm run seed # optional: sample data
npm run dev # starts API + MCP server on port 3100
Architecture
- MCP Server — Stdio transport (local) + Streamable HTTP (remote)
- REST API — Express on the same port
- Database — PostgreSQL (Neon-compatible)
- 23 MCP tools — 17 read (buyer + seller + discovery) + 6 write
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.