@prospkt/mcp-server
v4.1.0
Published
MCP Server for French B2B Intelligence — 9 tools: company & prospect search, signals, tenders, enrichment, SQL queries, ICP scoring. 12M+ companies.
Downloads
68
Maintainers
Readme
@prospkt/mcp-server
MCP Server for French B2B Intelligence — Access 12M+ French companies, prospect contacts, 34 business signal types, public tenders, LinkedIn data, and financial filings through 9 AI-ready tools.
Built on the Model Context Protocol, works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.
Quick Start
Option 1: Claude Desktop (stdio)
Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"prospkt": {
"command": "npx",
"args": ["-y", "@prospkt/mcp-server"],
"env": {
"PROSPKT_API_KEY": "psk_your_api_key_here"
}
}
}
}Option 2: Cursor / Windsurf
Add to your IDE's MCP settings:
{
"prospkt": {
"command": "npx",
"args": ["-y", "@prospkt/mcp-server"]
}
}Option 3: SSE (HTTP) Server
npm install -g @prospkt/mcp-server
MCP_TRANSPORT=sse MCP_PORT=3200 prospkt-mcpThen connect via http://localhost:3200/sse
Get an API Key
- Sign up at prospkt.fr
- Go to Settings → API Keys → Create MCP Key
- Copy your
psk_...key
Free tier gets 5 tools with unlimited searches. Pro and Business unlock enrichment, SQL queries, and ICP scoring.
Tools (9 total)
Free Tools (Starter tier, 0 credits)
| Tool | Description |
|------|-------------|
| search_companies | Search French companies by NAF code, location, size, revenue, directors, signals, semantic search |
| search_prospects | Search prospect contacts by job title, hierarchy level, work domain, company attributes |
| search_signals | Search business signals: creations, hiring spikes, fundraising, director changes |
| search_tenders | Search public tenders, contract attributions, or a company's tender win history |
| describe_data | Unified reference: data schemas, NAF code hierarchy, CPV codes, signal type catalog |
Pro Tier
| Tool | Credits | Description |
|------|---------|-------------|
| get_company | 0 | Full company profile with optional LinkedIn data and signals (include: ["all"]) |
| enrich_contact | 1-11 | Find professional email and/or phone — only tool that costs credits |
| query_data | 0 | Execute custom SQL SELECT on 11 read-only views |
Business Tier
| Tool | Credits | Description |
|------|---------|-------------|
| icp_score | 0 | Score a company against your Ideal Customer Profile |
Example Prompts
For Claude Desktop / Cursor
"Find SAS companies in Paris with 50+ employees in the IT sector"
"Search for prospect contacts who are CTOs at tech companies in Lyon"
"Show me companies that recently changed their CEO"
"Search for public tenders related to cybersecurity in Ile-de-France"
"Get the full profile of SIREN 443061841 with LinkedIn data and recent signals"
"Find the email and phone number of Jean Dupont at Acme Corp"
"Who won IT service contracts worth over 100k in the last year?"
"Score SIREN 443061841 against my ICP: SAS, 50-500 employees, IT/consulting, Paris"For query_data (Pro+ tier)
"Run SQL: SELECT siren, \"nomAffichage\", \"chiffreAffaire\" FROM mv_company_basic
WHERE \"nafSection\" = 'J' AND \"trancheEffectifsUniteLegale\" >= '21'
ORDER BY \"chiffreAffaire\" DESC NULLS LAST LIMIT 20"SQL Security (query_data)
The query_data tool has comprehensive security:
- Whitelist: Only
SELECTandWITH(CTE) queries allowed - Blocked: DDL, DML, dangerous functions (
pg_*,dblink,COPY, etc.) - Forced LIMIT: Pro = 100 rows, Business = 500 rows
- Timeout: 5-second hard limit per query
- Audit: Every query logged to
mcp_query_log
Allowed Views (11)
| View | Description | Records |
|------|-------------|---------|
| mv_company_basic | Company profiles (SIRENE + LinkedIn) | 12M+ |
| mv_company_size | Company size/employee data | 12M+ |
| signals | Business events | 50M+ |
| boamp | Public tenders | 2M+ |
| dirigeants | Company directors | 15M+ |
| bilans | Annual financial filings | 8M+ |
| etablissement | Company establishments | 30M+ |
| linkedin_companies | LinkedIn company profiles | 1M+ |
| linkedin_jobs | Active job postings | 500K+ |
| contract_attributions | Contract awards | 5M+ |
| contract_attribution_lots | Contract award lots/winners | 5M+ |
Data Sources
| Source | Coverage | Update Frequency | |--------|----------|-----------------| | SIRENE (INSEE) | 12M+ French companies | Daily | | BODACC | Legal announcements | Daily | | INPI | Directors, financials | Weekly | | LinkedIn | Company profiles, jobs, contacts | Weekly | | BOAMP | Public tenders | Daily | | SITADEL | Building permits | Monthly | | TED | EU tenders | Daily |
Configuration
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| PROSPKT_API_KEY | — | API key (alternative to passing in each tool call) |
| PROSPKT_API_URL | https://app.prospkt.fr/api/v1/mcp | API base URL |
| MCP_TRANSPORT | stdio | Transport: stdio or sse |
| MCP_PORT | 3200 | HTTP port for SSE transport |
| NAF_DATA_PATH | auto-detected | Path to NAF classification data |
Architecture
mcp-server/
├── src/
│ ├── index.js # MCP server setup, tool registration, transport
│ ├── api-client.js # API client for Laravel backend
│ ├── mcp-error.js # Structured error handling
│ └── tools/ # 9 tool implementations
│ ├── search_companies.js # Company search (NAF, location, size, directors, signals, semantic)
│ ├── search_prospects.js # Prospect/contact search (hierarchy, domain, title)
│ ├── search_signals.js # Business signal search (34 event types)
│ ├── search_tenders.js # Tenders + attributions + company tender history
│ ├── get_company.js # Company profile + optional LinkedIn & signals
│ ├── enrich_contact.js # Email and/or phone enrichment
│ ├── query_data.js # Custom SQL queries on 11 views
│ ├── icp_score.js # Ideal Customer Profile scoring
│ └── describe_data.js # Unified reference (schemas, NAF, CPV, signals)
├── docs/ # Documentation
├── package.json
├── smithery.yaml # Smithery.ai registry manifest
└── README.mdCredit Pricing
| Tool | Credits | Notes | |------|---------|-------| | search_companies | 0 | Unlimited searches | | search_prospects | 0 | Unlimited searches | | search_signals | 0 | Unlimited searches | | search_tenders | 0 | Unlimited (all modes) | | describe_data | 0 | Reference tool (schemas, NAF, CPV, signals) | | get_company | 0 | Full profile with LinkedIn + signals | | enrich_contact | 1-11 | Only tool that costs credits. Email = 1, phone = 10, both = 11 | | query_data | 0 | Unlimited queries | | icp_score | 0 | Unlimited scoring |
Tier Comparison
| Feature | Starter (Free) | Pro | Business | |---------|----------------|-----|----------| | Company search | Unlimited | Unlimited | Unlimited | | Prospect search | Unlimited | Unlimited | Unlimited | | Signal search | Unlimited | Unlimited | Unlimited | | Tender search | Unlimited | Unlimited | Unlimited | | Reference data | Unlimited | Unlimited | Unlimited | | Company profiles | - | Free | Free | | Contact enrichment | - | 1-11 cr | 1-11 cr | | Custom SQL | - | 100 rows | 500 rows | | ICP scoring | - | - | Free | | Rate limit | 100/hr | 500/hr | 2000/hr |
Support
- Email: [email protected]
- Discord: discord.gg/prospkt
- Docs: docs.prospkt.fr
- Issues: GitHub Issues
License
Proprietary — 2025 Prospkt SAS. All rights reserved.
