npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

prozorro-mcp-server

v1.0.0

Published

MCP server for searching Prozorro tenders - Ukrainian government procurement data

Readme

Prozorro MCP Server

A Model Context Protocol (MCP) server that provides AI models with seamless access to Ukrainian government procurement data from Prozorro - Ukraine's public procurement system.

Providing all the available features requires to have a proxy server and database, so right now MCP API is not available publicly. To get API URL and API token, please contact the author.

Features

  • 🔍 Search Tenders: Advanced search capabilities by EDRPOU code, legal name, or date ranges
  • ⚡ Fast: Direct API integration with Prozorro's public procurement database
  • 🛠️ Easy Integration: Simple setup with Claude Desktop and other MCP clients

Available Tools

search_tenders

Searches for government tenders based on various criteria (Right now data are available only for 2025 year).

Parameters:

  • EDRPOUCode (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)

Returns: Array of tender objects with detailed information including tender ID, title, organization details, dates, and procurement status.

Installation

Method 1: Install from npm (Recommended)

The easiest way to install the MCP server is via npm:

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

{
  "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.

Method 2: Install from GitHub

  1. Install globally via npm from GitHub:
npm install -g git+https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
  1. Add to Claude Desktop configuration:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "prozorro": {
      "command": "prozorro-mcp-server",
      "env": {
        "PROZORRO_API_TOKEN": "your-api-token-here",
        "PROZORRO_SERVICE_URL": "mcp-api-url-here"
      }
    }
  }
}
  1. Restart Claude Desktop - The server will be ready to use!

Method 3: Local Development Installation

  1. Clone the repository:
git clone https://github.com/VladyslavMykhailyshyn/prozorro-mcp-server.git
cd prozorro-mcp-server
  1. Install dependencies:
npm install
  1. Build the project:
npm run build
  1. Add to Claude Desktop configuration (use absolute path):
{
  "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.... |

Getting API Credentials

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

Workflow 1: Search Tenders by Organization

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

Workflow 2: Find Recent Tenders

1. Use search_tenders with dateFrom and dateTo parameters
2. Optionally filter by organization name using legalName
3. Limit results for better performance

Troubleshooting

Server not appearing in Claude Desktop

  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

API Request Failures

  • 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

Authentication Errors

  • 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

Project Structure

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

Running in Development Mode

# Watch mode - auto-rebuild on changes
npm run dev

# In another terminal
npm start

Building for Production

npm run build

API Information

This server uses the Prozorro public API to retrieve tender information. For more details about the Prozorro system and available data:

  • Prozorro Website: https://prozorro.gov.ua/
  • API Documentation: https://prozorro.gov.ua/api
  • Data Format: JSON responses with detailed tender information

License

ISC

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Contact

For issues and questions, please use the GitHub Issues page.