MCP server for searching Prozorro tenders - Ukrainian government procurement data
npm install prozorro-mcp-serverEDRPOUCode (string, optional): The unique identifier code of the organization (Ukrainian tax ID)
legalName (string, optional): A substring to match against the organization's legal name
dateFrom (string, optional): Start date for the search (ISO 8601 format, e.g., 2025-01-01)
dateTo (string, optional): End date for the search (ISO 8601 format, e.g., 2025-12-31)
limit (number, optional): Maximum number of records to return (default: 100, max: 1000)
bash
npm install -g prozorro-mcp-server
`
After installation, add to Claude Desktop configuration:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
`json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "mcp-api-url-here"
}
}
}
}
`
Restart Claude Desktop and you're ready to use the server!
> Note: On Linux/macOS, if you encounter permission issues, you may need to use sudo npm install -g prozorro-mcp-server or configure npm to use a user directory.
$3
1. Install globally via npm from GitHub:
`bash
npm install -g git+https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
`
2. Add to Claude Desktop configuration:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
`json
{
"mcpServers": {
"prozorro": {
"command": "prozorro-mcp-server",
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "mcp-api-url-here"
}
}
}
}
`
3. Restart Claude Desktop - The server will be ready to use!
$3
1. Clone the repository:
`bash
git clone https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
cd prozorro-mcp-server
`
2. Install dependencies:
`bash
npm install
`
3. Build the project:
`bash
npm run build
`
4. Add to Claude Desktop configuration (use absolute path):
`json
{
"mcpServers": {
"prozorro": {
"command": "node",
"args": ["/absolute/path/to/prozorro-mcp-server/build/index.js"],
"env": {
"PROZORRO_API_TOKEN": "your-api-token-here",
"PROZORRO_SERVICE_URL": "https://prozorro.gov.ua"
}
}
}
}
`
Configuration
The server requires specific environment variables to function correctly. You can set these in the Claude Desktop configuration or in a .env file for local development.
| Variable | Description | Required | Example |
|----------|-------------|:--------:|---------|
| PROZORRO_API_TOKEN | Your Bearer token for the Prozorro API | Yes | Bearer abc123... |
| PROZORRO_SERVICE_URL | Base URL for the API | Yes | https://mcp-service-url.... |
$3
To obtain API credentials and URL for Prozorro:
1. Contact the author
2. Retrieve API token and URL
3. Use the token and URL in your configuration
Common Usage Workflows
$3
`
1. Use search_tenders with EDRPOUCode to find all tenders from a specific organization
2. Review the returned tender details including dates, amounts, and status
3. Filter results by date range if needed
`
$3
`
1. Use search_tenders with dateFrom and dateTo parameters
2. Optionally filter by organization name using legalName
3. Limit results for better performance
`
Troubleshooting
$3
1. Check that the path in claude_desktop_config.json is correct
2. Ensure you've built the project with npm run build
3. Verify that Node.js is installed (version 18 or higher required)
4. Restart Claude Desktop
5. Check Claude Desktop logs for errors
$3
- Verify your PROZORRO_API_TOKEN is valid and not expired
- Check that PROZORRO_SERVICE_URL is correct
- The Prozorro API may have rate limits - consider adding delays between requests
- Network connectivity to prozorro.gov.ua is required
- Some tenders might be temporarily unavailable
$3
- Ensure your API token includes the Bearer prefix if required
- Check that your token has the necessary permissions
- Verify the token hasn't expired
Development
$3
`
prozorro-mcp-server/
āāā src/
ā āāā index.ts # Main MCP server entry point
ā āāā tenders.ts # Tender search implementation
ā āāā types.ts # TypeScript type definitions
āāā build/ # Compiled JavaScript (generated)
āāā package.json
āāā tsconfig.json
āāā README.md
`
$3
`bash
Watch mode - auto-rebuild on changes
npm run dev
In another terminal
npm start
`
$3
`bash
npm run build
``