Indonesia Regulatory Data
Indonesian BPOM product registrations, DGIP trademarks, and Komdigi PSE registrations.
Open source Repository Open in the app JSON README (API)
About
Indonesian BPOM product registrations, DGIP trademarks, and Komdigi PSE registrations.
Details
- Kind
- MCP servers
- Topic
- Government & public data
- Publisher
- indotender
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.0.0
- Last push
- 2026-09-01T06:47:09Z
- Repository state
- ativo
- Added
- 2026-09-01 08:00:09
- Updated
- 2026-09-01 08:00:09
- Origin id
io.github.IndoTender/indonesia-regulatory
README
# Indonesia Regulatory MCP
Connect your AI assistant to [IndoTender](https://indotender.com) for Indonesian regulatory and registration data through the Model Context Protocol.
This listing provides search access to:
- **BPOM** — food, drug, and cosmetic product registrations
- **DGIP** — Indonesian trademark records
- **Komdigi PSE** — electronic system provider registrations
## Connect
```
https://indotender.com/mcp
```
Add this URL as a custom MCP connector in Claude, Cursor, or any MCP-compatible client. Sign in with Google when prompted.
- Transport: Streamable HTTP
- Auth: Google OAuth
- Docs: [indotender.com/mcp/connect](https://indotender.com/mcp/connect)
## Tools
### `Bpom_search`
Search Indonesian BPOM product registrations. Filters are combined with AND logic.
| Parameter | Type | Description |
|---|---|---|
| `productName` | string, optional | Partial product name |
| `productRegister` | string, optional | Partial BPOM registration number |
| `productBrands` | string, optional | Partial product brand |
| `applicant` | string, optional | Partial applicant or company name |
| `applicantNpwp` | string, optional | Applicant NPWP; an `ID` company-id prefix is removed automatically |
| `category` | string, optional | Partial product category |
| `status` | string, optional | Partial registration status |
| `class` | string, optional | Exact BPOM product class |
| `page` | integer, optional | Page number, minimum `1`, default `1` |
| `limit` | integer, optional | Results per page, `1`–`500`, default `25` |
| `sortBy` | enum, optional | `productDate`, `submitDate`, `productName`, or `id`; default `productDate` |
| `sortOrder` | enum, optional | `asc` or `desc`; default `desc` |
Returns `{ total, page, data }` with full BPOM registration rows. Results are sorted by `productDate` descending by default.
Example:
```json
{
"productName": "paracetamol",
"status": "approved",
"page": 1,
"limit": 25
}
```
### `Trademark_search`
Search Indonesian trademark records from DGIP. Use specific owner, registration, or company fields for narrower results.
| Parameter | Type | Description |
|---|---|---|
| `brandName` | string, optional | Partial brand name |
| `ownerName` | string, optional | Partial owner name; may be an individual or domestic or foreign company |
| `ownerCompanyId` | string, optional | Exact linked company id |
| `registrationNumber` | string, optional | Partial trademark registration number |
| `classNumbers` | string, optional | Partial Nice classification number(s) |
| `applicationStatus` | string, optional | Partial application status |
| `page` | integer, optional | Page number, minimum `1`, default `1` |
| `limit` | integer, optional | Results per page, `1`–`500`, default `25` |
| `sortBy` | enum, optional | `applicationDate`, `registrationDate`, or `id`; default `applicationDate` |
| `sortOrder` | enum, optional | `asc` or `desc`; default `desc` |
Returns `{ total, page, data }`. Each result includes:
```text
id, brandName, applicationDate, statusGroupLabel, ownerName,
ownerCompanyId, registrationNumber, registrationDate, classNumbers,
provinceName, imagePath
```
Dates are ISO-8601 date strings and nullable fields may be `null`.
Example:
```json
{
"ownerName": "Unilever",
"classNumbers": "3",
"sortBy": "registrationDate",
"sortOrder": "desc"
}
```
### `KomdigiPse_search`
Search Indonesian Komdigi PSE (Penyelenggara Sistem Elektronik) registrations. Filters are combined with AND logic.
| Parameter | Type | Description |
|---|---|---|
| `domain` | string, optional | Partial registered domain |
| `systemName` | string, optional | Partial registered system or product name |
| `registrationNumber` | string, optional | Partial PSE registration number |
| `providerName` | string, optional | Partial domestic or foreign provider name |
| `status` | string, optional | Partial registration status |
| `companyId` | string, optional | Exact linked company id |
| `isDomestic` | boolean, optional | Restrict to domestic (`true`) or foreign (`false`) providers |
| `limit` | integer, optional | Results to return, `1`–`500`, default `25` |
| `sortBy` | enum, optional | `registered_date`, `id`, `status`, or `provider_name`; default `registered_date` |
| `sortOrder` | enum, optional | `asc` or `desc`; default `desc` |
Returns `{ total, data }` with PSE registration rows, including domain, domestic/foreign status, system name, registration number, provider name, status, registration date, and linked company id.
Example:
```json
{
"providerName": "Google",
"isDomestic": false,
"limit": 25
}
```
## Example prompts
- *"Find BPOM registrations for products containing paracetamol."*
- *"Show Indonesian trademarks owned by a company containing 'Unilever'."*
- *"Which PSE registrations belong to this domain: example.com?"*
- *"Find a company’s BPOM products, trademarks, and PSE registrations."*
## Setup — Claude
1. Go to [claude.ai/customize/connectors](https://claude.ai/customize/connectors)
2. Click **Add custom connector**
3. Name it **Indonesia Regulatory Data** and paste `https://indotender.com/mcp`
4. Save and sign in with Google when prompted
## Setup — Cursor / other MCP clients
Add to your MCP config:
```json
{
"mcpServers": {
"indonesia-regulatory": {
"url": "https://indotender.com/mcp"
}
}
}
```