About procureport
procureport provides Korean public-procurement data through a CLI and stdio MCP server, for users exploring bids, awards, contracts, statistics, products, and the public shopping mall. It combines convenience queries with generic API access and local API exploration tools.
Key features
- 01Search bid notices, awards, and contracts
- 02Query procurement statistics
- 03Browse product catalogue and mall
- 04Paginate and aggregate API results
- 05Explore services and operations
- 06CLI and stdio MCP server
Use cases
- 01Find recent bid announcements by business type
- 02Review yearly procurement statistics
- 03Search products by name or company
- 04Explore API operations before querying
MCP support
Its stdio MCP server exposes procurement search, statistics, catalogue, shopping-mall, generic API, pagination, and local API-exploration tools. API-calling tools require NARAMARKET_SERVICE_KEY.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
15Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number to return. |
| query | string | No | Search query text to filter the product list. |
| page_size | number | No | Number of items per page. |
Details
From the project READMEprocureport
procureport opens up Korean public-procurement data — the Nara Market / data.go.kr API family — through one binary that serves a command-line interface and a stdio MCP server. It covers bid notices, successful bids (awards) and contracts, procurement statistics, the registered product catalogue, and the public shopping mall.
Configuration
API-calling tools need a service key:
export NARAMARKET_SERVICE_KEY=<your data.go.kr service key>
Calls go to data.go.kr-style endpoints under a base URL you can
override with NARAMARKET_API_URL (default
https://apis.data.go.kr). Requests are shaped as
{base}/{service}/{operation}?serviceKey={key}&{params}.
Four tools are purely local — they answer from a built-in
catalogue of the four API services and their operations, and work
with nothing configured: server_info,
get_all_api_services_info, get_api_operations, and
get_data_exploration_guide. Every other tool checks for the
service key first and fails with a clean error before any request
is attempted when it is missing.
Install
npx @reneturcios/procureport server-info
Or run the container image:
docker run -i -e NARAMARKET_SERVICE_KEY=... ghcr.io/cloudcorprecords/procureport
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
CLI
procureport server-info
procureport services
procureport operations shopping_mall
procureport guide
procureport crawl chair --page 1 --page-size 20
procureport attributes PRD-42
procureport recent-bids --days 7 --business-type 물품
procureport successful-bids 공사
procureport statistics-year 2025
procureport search-mall monitor --company Acme
procureport --version
Exit codes: 0 on success, 1 when a call fails (including a
missing service key or an upstream API error), 2 for usage
errors.
MCP server
npx -y @reneturcios/procureport mcp
MCP client configuration:
{
"mcpServers": {
"procureport": {
"command": "npx",
"args": ["-y", "@reneturcios/procureport", "mcp"],
"env": { "NARAMARKET_SERVICE_KEY": "<your data.go.kr service key>" }
}
}
}
Tools
Basic:
| Tool | Input | What it returns |
|---|---|---|
crawl_list | query (optional), page, page_size (optional) | A page of the product list. |
get_detailed_attributes | product_id (required) | The detailed attributes of one product. |
server_info | (none) | Server identity, tool list, and service summary. Local. |
Generic API access (each takes operation (required) and an
optional params object):
| Tool | Service |
|---|---|
call_public_data_standard_api | Bid notices, awards, and contracts. |
call_procurement_statistics_api | Procurement statistics — 14 operations. |
call_product_list_api | Product catalogue — 12 operations. |
call_shopping_mall_api | Shopping mall — 9 operations. |
Convenience:
| Tool | Input | What it returns |
|---|---|---|
get_recent_bid_announcements | days, business_type (both optional) | Bid notices over an automatically computed recent period. |
get_successful_bids_by_business_type | business_type (required) | Awards for a business type; a Korean name such as 물품, 용역, 공사 or 외자 is converted to its code automatically. |
get_procurement_statistics_by_year | year (required) | Procurement statistics for one year. |
search_shopping_mall_products | query (required), company (optional) | Shopping-mall products matching a name, optionally narrowed to one company. |
Exploration:
| Tool | Input | What it returns |
|---|---|---|
get_all_api_services_info | (none) | All four services with their operations. Local. |
get_api_operations | service (required) | The operations of one service. Local. |
call_api_with_pagination_support | service, operation (required), params, max_pages, page_size (optional) | Items aggregated across pages until a short page or the page cap. |
get_data_exploration_guide | (none) | A strategy guide for exploring the data. Local. |
Argument schemas in this rebuild are documented reconstructions from the public README of the original server (tool names and descriptions are documented; the README does not publish full schemas). The built-in catalogue's service operation counts follow the public spec (statistics 14, product list 12, shopping mall 9); individual operation names within the catalogue are documented reconstructions too.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.