EU Tender MCP
Enables searching for EU public-procurement tenders, analyzing cross-border risk, and understanding tender details through tools for CPV code lookup, EU threshold checks, red-flag scanning, and SME fit scoring.
README
EU Tender MCP
Live, structured European public-procurement intelligence for SMEs — as an MCP server. Search opportunities, analyze cross-border risk, and understand EU tenders — all from inside Claude, Cursor, or any MCP client.
The value here is information an LLM cannot know: current tender opportunities, EU thresholds, CPV codes, and cross-border risk patterns. It's built for a consulting, services, or supply SME that wants to bid on public contracts outside its home member state.
Why it's genuinely useful (and not just another wrapper)
| Thing an LLM fakes from memory | What this MCP actually does |
|---|---|
| "What's the EU threshold for services?" | Returns the real figure (€143k standard) with the category it applies to |
| "Find me tenders in Germany for software" | Returns structured, filterable tender records (country/CPV/value/deadline) |
| "Is this RFP risky to bid from abroad?" | Runs a red-flag scan (bonds, turnover floors, local-presence, short deadlines) + an honest SME fit score |
| "What CPV code is 'cleaning services'?" | Returns the CPV division with aliases |
| "What does this notice type mean?" | Explains pin, cn-standard, results, etc. |
Every tool is deterministic, typed, and honest about its data source — it never fabricates "live" opportunities when a TED API key isn't configured.
Tools (7)
| Tool | What it does |
|---|---|
search_tenders |
Search tenders by query / country / CPV / value range / deadline |
market_snapshot_tool |
Activity by country & sector, typical values, urgent deadlines |
analyze_tender |
Red-flag scan + 0-100 SME fit score (by tender id or pasted RFP text) |
look_up_cpv |
Translate a description into EU CPV division codes |
look_up_notice_type |
Explain what a notice type (pin, cn-standard, results…) signals |
eu_threshold |
Whether a value is above EU mandatory-publication thresholds |
tender_details |
Full structured record for one tender |
Install & run
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/pytest tests/ -q # 38 tests, incl. a real MCP stdio integration
Start the server (stdio)
.venv/bin/eu-tender-mcp
# or
.venv/bin/python -m tendermcp.server
Connect a client
Claude Desktop — add to your MCP config (claude_desktop_config.json):
mcpServers → see configs/claude-desktop.json. Point PYTHONPATH at the repo absolute path.
Claude Code / Cursor / other MCP clients — use configs/mcp-config.json and install the package (pip install -e .) so python3 -m tendermcp.server resolves.
Data model
- Default provider: a bundled set of clearly-labeled sample tenders (source
bundled_sample) so the MCP works out of the box, is demoable, and is fully testable with no key. - Live TED (roadmap): register a TED API key, set
TED_API_KEY, and implementTEDLiveProvider._fetch()(inproviders.py, already stubbed). Until then, no live data is ever fabricated — the labeled sample is returned instead.
Project layout
eu-tender-mcp/
├── tendermcp/
│ ├── server.py ← FastMCP server wiring all tools
│ ├── knowledge.py ← CPV codes, notice types, EU thresholds, red-flag rules
│ ├── analyzer.py ← red-flag scan + SME fit scoring (offline, deterministic)
│ ├── providers.py ← provider interface + bundled/live providers
│ ├── models.py ← typed Tender / search-params models
│ ├── intel.py ← market-snapshot aggregations
│ └── sample_data.py ← labeled demo tenders
├── configs/ ← Claude Desktop / generic MCP client configs
├── tests/ ← 38 tests including real stdio integration
├── pyproject.toml
└── README.md
Roadmap / honest notes
- Live TED feed is the single biggest upgrade — it needs a registered TED/OPEN API key + account feed URL (account-specific), which only a user can supply. The provider seam is ready.
- More red-flag rules and jurisdiction nuance are planned; the analyzer is transparent on purpose (it outputs reasons, not false precision).
- Not legal advice. The analyzer is a triage aid; always verify against the full tender documents.
MIT licensed.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。