Internal MCP server for Claude Desktop — search Supplier.io supplier database using natural language. Built with Node.js, Express, and @modelcontextprotocol/sdk.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"supplierio-mcp": {
"args": [
"-y",
"npx"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP (Model Context Protocol) server that lets Claude search the Supplier.io supplier database using natural language.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'npx' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked npx against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ai-ml / data
Dynamic problem-solving through sequential thought chains
Zero-dependency, token-efficient database MCP server for Postgres, MySQL, SQL Server, MariaDB, SQLite.
Workspace template + MCP server for Claude Code, Codex CLI, Cursor & Windsurf. Multi-agent knowledge engine (ag-refresh / ag-ask) that turns any codebase into a queryable AI assistant.
Persistent memory using a knowledge graph
MCP Security Weekly
Get CVE alerts and security updates for Supplierio Mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server that lets Claude search the Supplier.io supplier database using natural language.
Example queries:
The server exposes a search_suppliers tool to Claude. When you ask Claude a supplier-related question, it automatically maps your natural language to the right API filters and returns matching suppliers with TrustIQ scores, diversity classifications, and company details.
Claude (claude.ai)
│ OAuth 2.0
▼
MCP Server (Node.js / Express) ← deployed on Render
│ GET query params
▼
Supplier.io API (GetSearchDetail)
Key files:
src/
index.ts Express server, MCP endpoint, OAuth middleware
oauthServer.ts OAuth 2.0 Authorization Code + PKCE flow
supplierioClient.ts Supplier.io API client (GET + query params)
tools/
searchSuppliers.ts MCP tool definition and parameter mapping
renderer.ts HTML result cards rendered in Claude
users.ts User management (bcrypt password hashing)
auth.ts Bearer token validation
logger.ts Usage logging
| Parameter | Description | Example |
|---|---|---|
searchQuery | Keyword search | "catering", "IT staffing" |
organizationName | Filter by company name | "Acme Corp" |
state | 2-letter US state code | "TX", "MA" |
country | ISO 3-letter country code | "USA", "CAN" |
naicsCode | 6-digit NAICS industry code | "541511" |
sicCode | 4-digit SIC industry code | "7372" |
diversityClassification | Diversity type | "MBE", "WBE", "VOSB", "LGBTQ" |
sustainabilityClassification | Sustainability certification | "B Corp" |
ethnicity | Ethnicity filter | "Asian", "Black", "Hispanic" |
employee | Employee count range | "1-50", "51-200" |
revenue | Annual revenue range | "$1M-10M", "$10M-50M" |
Prerequisites: Node 20+, npm
.env file:PORT=8080
BASE_URL=http://localhost:8080
VALID_TOKENS={"yourname":"tok_yourname_abc123"}
USERS={"you@supplier.io":"$2b$10$...bcrypt_hash_here"}
ADMIN_TOKEN=pick_a_strong_random_string
SUPPLIERIO_API_KEY=your_api_key
SUPPLIERIO_CUSTOMER_ID=your_customer_id
SUPPLIERIO_CUSTOMER_NAME=your_customer_name
SUPPLIERIO_BASE_URL=https://nextgenapi.supplierio.com/supplier
LOG_PATH=./logs/usage.log
npm install
npx ts-node -e "import('./src/users.js').then(m => m.hashPassword('yourpassword').then(console.log))"
npm run dev
curl http://localhost:8080/health
Docker| Variable | Value |
|---|---|
BASE_URL | https://your-app.onrender.com |
VALID_TOKENS | {"name":"tok_abc123"} |
USERS | {"email@supplier.io":"$2b$10$..."} |
ADMIN_TOKEN | strong random string |
SUPPLIERIO_API_KEY | your API key |
SUPPLIERIO_CUSTOMER_ID | your customer ID |
SUPPLIERIO_CUSTOMER_NAME | your customer name |
SUPPLIERIO_BASE_URL | https://nextgenapi.supplierio.com/supplier |
LOG_PATH | /tmp/usage.log |
GET https://your-app.onrender.com/admin/generate-hash?password=THEIR_PASSWORD
Authorization: Bearer YOUR_ADMIN_TOKEN
USERS env var in Render:{
"existing@supplier.io": "$2b$10$existingHash",
"newuser@supplier.io": "$2b$10$newHash"
}