atlas-przetargow-mcp-py
Enables searching and analyzing Polish public procurement tenders from BZP and TED, including filtering, tender details and timelines, offers and contract values, buyer/contractor profiles, CPV code lookup, and regional statistics, with optional AI-summary endpoints.
README
atlas-przetargow-mcp-py
Atlas Przetargow Polish public procurement API MCP server. A Python/FastMCP rewrite of the official TypeScript server with several upstream bugs fixed and new tender-analysis tools added.
Table of contents
Tools
| Tool | Parameters | Description |
|---|---|---|
search_tenders |
search?, buyer_nip?, cpv?, city?, province?, notice_type?, order_kind?, date_from?, date_to?, value_min?, value_max?, sort?, page=1, limit=20 |
Search BZP + TED tenders with filters |
get_tender |
tender_id: str, full: bool = False |
Tender details; full=True includes complete notice text |
get_tender_timeline |
tender_id: str |
Full notice chain of a procedure (announcement, revisions, result, performance) |
get_tender_offers |
tender_id: str |
Offers count and lowest/highest/winning prices from result notices |
extract_contract_value |
tender_id: str |
Contract/order money amounts extracted from notice text |
get_buyer |
nip: str, include_winning_contractors: bool = True |
Buyer profile + contractors that most often win its tenders |
get_contractor |
nip: str, include_winning_buyers: bool = True |
Contractor profile with win geography + top buyers |
search_entities |
query: str, entity_type?, limit=10 |
Find buyers/contractors by name (returns NIP) |
search_cpv |
query: str, limit=10 |
Look up CPV codes by Polish keyword |
get_category_stats |
cpv: str, window="year" |
Category stats: count, median value, avg offers, avg deadline |
get_province_stats |
province?, city? |
Province ranking, single province, or city drill-down |
raw_request |
path: str, params_json? |
Escape hatch: GET any /api/* endpoint |
Fixed vs upstream TS server
Bugs found while testing @atlasprzetargow/mcp v0.1.1:
buyerNipfilter sent asbuyerNipwhile the API expectsbuyer_nip— filter silently ignored. Fixed here.get_buyerwinning contractors read fromwinners.contractorswhile the API returns{"data": [...]}— section never rendered. Fixed here.- City stats returned an empty header although
/api/stats/city/{city}/top-buyersreturns data. Fixed here. get_category_statsrequested window can be ignored by the API (asks for year, returns 90 days) — this server returns the actualdaysvalue so the discrepancy is visible.get_contractorreturned 3 lines; this server returns the full profile (win geography, shares) plus winning buyers.
New tools not present upstream: get_tender_timeline, get_tender_offers, extract_contract_value, raw_request.
Environment variables
| Variable | Required | Description |
|---|---|---|
ATLAS_PRZETARGOW_MCP_PY_API_BASE |
no | API base (default https://atlasprzetargow.pl) |
ATLAS_PRZETARGOW_MCP_PY_API_KEY |
no | Key for /api/llm/* AI summary endpoints |
ATLAS_PRZETARGOW_MCP_PY_TIMEOUT |
no | Request timeout in seconds (default 20) |
Wiring it up
Only requirement: uv (https://docs.astral.sh/uv/). Nothing else to install.
Claude Code
claude mcp add atlas-przetargow-mcp-py -- uvx --from git+https://github.com/dam2452/atlas-przetargow-mcp-py.git atlas-przetargow-mcp-py
Claude Desktop / other MCP client
{
"mcpServers": {
"atlas-przetargow-mcp-py": {
"command": "uvx",
"args": ["--from", "git+https://github.com/dam2452/atlas-przetargow-mcp-py.git", "atlas-przetargow-mcp-py"]
}
}
}
After pushing a new version: uv cache clean and restart the client.
Local run
uv run --directory . atlas-przetargow-mcp-py
Tests (manual):
uv run --directory . --with pytest pytest test/
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.