# io.github.pubrio/pubrio (npm · pubrio-mcp-server)

Glocalized business data layer for AI agents. Search companies, people, and signals.

- Trust score: 69/100 (medium)
- Change this week: +29
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `pubrio-mcp-server`: 69/100 (this document), [markdown](https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server.md), [page](https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `pubrio-mcp-server`
- Version: `1.3.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 71/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Cryptographically verified build provenance (signed, bound to pubrio/pubrio-mcp-server).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 117 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4476 tokens (~87/item across 51 items; 51 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add pubrio-pubrio -- npx -y pubrio-mcp-server
```

### Codex

```bash
codex mcp add pubrio-pubrio -- npx -y pubrio-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pubrio-pubrio": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "pubrio-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pubrio-pubrio --command npx --arg -y --arg pubrio-mcp-server
```

### Hermes

```yaml
mcp_servers:
  pubrio-pubrio:
    command: "npx"
    args: ["-y", "pubrio-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "pubrio-pubrio": {
      "command": "npx",
      "args": [
        "-y",
        "pubrio-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 69, +53)

- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [security] The attested source repository moved: pubrio/pubrio-mcp-server
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: unverified → good
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 16, +15)

- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-31 (score 1, −39)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 40, +22)

- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 18, −22)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (51)

### `search_companies` (~616 tokens)

Search B2B companies by name, domain, location, industry, technology, or headcount. Tip: use get_locations, search_verticals, and search_technologies to find valid filter codes

Input parameters:

- `advertisement_end_dates` (string): Comma-separated ad end dates (YYYY-MM-DD)
- `advertisement_exclude_target_locations` (string): Comma-separated ad target locations to exclude
- `advertisement_search_terms` (string): Comma-separated advertisement search terms
- `advertisement_start_dates` (string): Comma-separated ad start dates (YYYY-MM-DD)
- `advertisement_target_locations` (string): Comma-separated ad target location codes
- `categories` (string): Comma-separated technology category IDs
- `companies` (string): Comma-separated company domain_search_id UUIDs
- `company_name` (string): Company name to search for
- `domains` (string): Comma-separated list of domains (e.g. "google.com,apple.com")
- `employees_max` (number): Maximum number of employees
- `employees_min` (number): Minimum number of employees
- `exclude_fields` (string): Comma-separated fields to exclude from response
- `exclude_locations` (string): Comma-separated ISO country codes to exclude
- `exclude_places` (string): Comma-separated place names to exclude
- `founded_year_end` (number): Founded year range end
- `founded_year_start` (number): Founded year range start
- `is_enable_similarity_search` (boolean): Enable similarity search
- `job_exclude_locations` (string): Comma-separated job locations to exclude
- `job_locations` (string): Comma-separated job location codes
- `job_posted_dates` (string): Comma-separated job posted dates (YYYY-MM-DD)
- `job_titles` (string): Comma-separated job titles to filter by
- `keywords` (string): Comma-separated keywords
- `linkedin_urls` (string): Comma-separated LinkedIn company URLs
- `locations` (string): Comma-separated location codes
- `news_categories` (string): Comma-separated news categories
- `news_galleries` (string): Comma-separated news gallery names
- `news_gallery_ids` (string): Comma-separated news gallery IDs
- `news_published_dates` (string): Comma-separated news published dates (YYYY-MM-DD)
- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (default 25, max 25)
- `places` (string): Comma-separated place names
- `revenue_max` (number): Maximum revenue
- `revenue_min` (number): Minimum revenue
- `similarity_score` (number): Similarity score threshold (0-1)
- `technologies` (string): Comma-separated technologies
- `vertical_categories` (string): Comma-separated vertical category IDs
- `vertical_sub_categories` (string): Comma-separated vertical sub-category IDs
- `verticals` (string): Comma-separated industry verticals

### `lookup_company` (~67 tokens)

Look up detailed company information by domain, LinkedIn URL, or domain search ID

Input parameters:

- `domain` (string): Company domain (e.g. "google.com")
- `domain_search_id` (string): Pubrio domain search ID
- `linkedin_url` (string): Company LinkedIn URL

### `enrich_company` (~85 tokens)

Enrich company data with full firmographic details including description, social links, and funding (uses credits). Provide one of: domain, linkedin_url, or domain_search_id

Input parameters:

- `domain` (string): Company domain (e.g. "google.com")
- `domain_search_id` (string): Pubrio domain search ID
- `linkedin_url` (string): Company LinkedIn URL

### `search_people` (~268 tokens)

Search business professionals by name, title, department, seniority, or company. Tip: use get_departments, get_department_functions, and get_management_levels to find valid filter codes

Input parameters:

- `companies` (string): Comma-separated company names
- `company_linkedin_urls` (string): Comma-separated company LinkedIn URLs
- `company_locations` (string): Comma-separated company location codes
- `department_functions` (string): Comma-separated department functions
- `departments` (string): Comma-separated departments
- `domains` (string): Comma-separated company domains
- `employees` (string): Comma-separated employee range (e.g. "1,1000")
- `linkedin_urls` (string): Comma-separated person LinkedIn URLs
- `management_levels` (string): Comma-separated seniority levels
- `page` (number): Page number (default 1)
- `people_locations` (string): Comma-separated people location codes
- `people_name` (string): Person name to search
- `people_titles` (string): Comma-separated job titles
- `peoples` (string): Comma-separated people identifiers
- `per_page` (number): Results per page (default 25, max 25)
- `search_term` (string): General search term

### `lookup_person` (~49 tokens)

Look up a person's professional profile by LinkedIn URL or Pubrio ID

Input parameters:

- `linkedin_url` (string): Person LinkedIn URL
- `people_search_id` (string): Pubrio people search ID

### `lookup_person_linkedin` (~43 tokens)

Look up a person's professional profile by their LinkedIn URL (dedicated LinkedIn lookup endpoint)

Input parameters:

- `people_linkedin_url` (string, required): Person LinkedIn URL

### `enrich_person` (~62 tokens)

Enrich person with full professional details including work history and education (uses credits). Provide linkedin_url or people_search_id from a previous search

Input parameters:

- `linkedin_url` (string): Person LinkedIn URL
- `people_search_id` (string): Pubrio people search ID

### `reveal_contact` (~90 tokens)

Reveal email (work or personal) or phone number for a person (uses 1 credit per contact type). Provide people_search_id from search_people or linkedin_url

Input parameters:

- `linkedin_url` (string): Person LinkedIn URL
- `people_contact_types` (string): Comma-separated contact types: email-personal, email-work, phone
- `people_search_id` (string): Pubrio people search ID

### `search_jobs` (~195 tokens)

Search job postings across companies by title, keyword, location, and date. Returns job_search_id for use with lookup_job

Input parameters:

- `companies` (string): Comma-separated company names
- `company_locations` (string): Comma-separated company location codes
- `domains` (string): Comma-separated company domains
- `exclude_locations` (string): Comma-separated locations to exclude
- `linkedin_urls` (string): Comma-separated company LinkedIn URLs
- `locations` (string): Comma-separated job locations
- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (default 25, max 25)
- `posted_dates` (string): Comma-separated posted date filters
- `search_term` (string): Job search term
- `search_terms` (string): Comma-separated job search terms
- `titles` (string): Comma-separated job titles

### `search_news` (~233 tokens)

Search company news and press releases. Tip: use get_news_categories and get_news_galleries for valid filter values. Returns news_search_id for use with lookup_news

Input parameters:

- `categories` (string): Comma-separated news categories
- `companies` (string): Comma-separated company names
- `company_locations` (string): Comma-separated company location codes
- `domains` (string): Comma-separated company domains
- `linkedin_urls` (string): Comma-separated company LinkedIn URLs
- `locations` (string): Comma-separated location codes
- `news_galleries` (string): Comma-separated news gallery names
- `news_gallery_ids` (string): Comma-separated news gallery IDs
- `news_languages` (string): Comma-separated news language codes
- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (default 25, max 25)
- `published_dates` (string): Comma-separated published date filters
- `search_term` (string): News search term
- `search_terms` (string): Comma-separated news search terms

### `search_ads` (~219 tokens)

Search company advertisements and ad campaigns by keyword, headline, target location, and date. Returns advertisement_search_id for use with lookup_advertisement

Input parameters:

- `companies` (string): Comma-separated company names
- `company_locations` (string): Comma-separated company location codes
- `domains` (string): Comma-separated company domains
- `end_dates` (string): Comma-separated end date filters
- `exclude_target_locations` (string): Comma-separated target locations to exclude
- `filter_conditions` (string): JSON string of filter conditions
- `headlines` (string): Comma-separated ad headlines
- `linkedin_urls` (string): Comma-separated company LinkedIn URLs
- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (default 25, max 25)
- `search_terms` (string): Comma-separated ad search terms
- `start_dates` (string): Comma-separated start date filters
- `target_locations` (string): Comma-separated target location codes

### `find_similar_companies` (~341 tokens)

Find companies similar to a given company by domain, LinkedIn URL, or domain search ID

Input parameters:

- `categories` (string): Comma-separated categories
- `domain` (string): Company domain (e.g. "google.com")
- `domain_search_id` (string): Pubrio domain search ID
- `employees` (string): Comma-separated employee range (e.g. "1,1000")
- `exclude_locations` (string): Comma-separated locations to exclude
- `founded_dates` (string): Comma-separated founded date filters
- `is_enable_similarity_search` (boolean): Enable similarity search
- `job_locations` (string): Comma-separated job location codes
- `job_posted_dates` (string): Comma-separated job posted date filters
- `job_titles` (string): Comma-separated job titles
- `linkedin_url` (string): Company LinkedIn URL
- `locations` (string): Comma-separated location codes
- `news_categories` (string): Comma-separated news categories
- `news_published_dates` (string): Comma-separated news published date filters
- `page` (number): Page number (default 1)
- `per_page` (number): Results per page (default 25, max 25)
- `revenues` (string): Comma-separated revenue filters
- `similarity_score` (number): Similarity score threshold
- `technologies` (string): Comma-separated technologies
- `vertical_categories` (string): Comma-separated vertical categories
- `vertical_sub_categories` (string): Comma-separated vertical sub-categories
- `verticals` (string): Comma-separated industry verticals

### `lookup_technology` (~73 tokens)

Look up technologies used by a company

Input parameters:

- `domain` (string): Company domain (e.g. "google.com")
- `domain_id` (number): Pubrio domain ID (integer)
- `domain_search_id` (string): Pubrio domain search ID
- `linkedin_url` (string): Company LinkedIn URL

### `get_usage` (~21 tokens)

Get current credit usage and subscription information for your Pubrio account

### `get_user` (~16 tokens)

Get details about the currently authenticated user

### `validate_webhook` (~43 tokens)

Test a webhook destination configuration with sample data

Input parameters:

- `headers` (string): JSON string of custom headers
- `webhook_url` (string, required): Webhook URL to test

### `get_monitor_chart` (~59 tokens)

Get daily trigger statistics for a monitor over a date range

Input parameters:

- `end_date` (string, required): End date (YYYY-MM-DD)
- `monitor_id` (string, required): Monitor UUID
- `start_date` (string, required): Start date (YYYY-MM-DD)

### `lookup_company_linkedin` (~39 tokens)

Look up a company by its LinkedIn URL using the dedicated LinkedIn lookup endpoint

Input parameters:

- `linkedin_url` (string, required): Company LinkedIn URL

### `lookup_job` (~36 tokens)

Look up detailed information about a specific job posting by its search ID

Input parameters:

- `job_search_id` (string, required): Pubrio job search ID

### `lookup_news` (~36 tokens)

Look up detailed information about a specific news article by its search ID

Input parameters:

- `news_search_id` (string, required): Pubrio news search ID

### `lookup_advertisement` (~37 tokens)

Look up detailed information about a specific advertisement by its search ID

Input parameters:

- `advertisement_search_id` (string, required): Pubrio advertisement search ID

### `lookup_lookalike` (~74 tokens)

Look up a similar/lookalike company result by domain, LinkedIn URL, or domain search ID

Input parameters:

- `domain` (string): Company domain (e.g. "google.com")
- `domain_search_id` (string): Pubrio domain search ID
- `linkedin_url` (string): Company LinkedIn URL

### `batch_redeem_contacts` (~82 tokens)

Reveal contact details (email, phone) for multiple people at once (uses 1 credit per person per contact type). Provide people_search_ids from search_people results

Input parameters:

- `people_contact_types` (string): Comma-separated contact types: email-personal, email-work, phone
- `peoples` (string, required): Comma-separated people_search_ids to redeem

### `query_batch_redeem` (~43 tokens)

Check the status and results of a batch contact redeem operation

Input parameters:

- `redeem_query_id` (string, required): Batch redeem query ID returned from batch_redeem_contacts

### `get_locations` (~30 tokens)

Reference data: get all available location codes for use as filter values in search queries (free, no credits)

### `get_departments` (~31 tokens)

Reference data: get all department title codes for use as filter values in people searches (free, no credits)

### `get_department_functions` (~31 tokens)

Reference data: get all department function codes for use as filter values in people searches (free, no credits)

### `get_management_levels` (~34 tokens)

Reference data: get all management/seniority level codes for use as filter values in people searches (free, no credits)

### `get_company_sizes` (~31 tokens)

Reference data: get all company size range codes for use as filter values in searches (free, no credits)

### `get_timezones` (~23 tokens)

Reference data: get all available timezone codes (free, no credits)

### `get_news_categories` (~31 tokens)

Reference data: get all news category codes for use as filter values in news searches (free, no credits)

### `get_news_galleries` (~32 tokens)

Reference data: get all news gallery codes for use as filter values in news searches (free, no credits)

### `get_news_languages` (~31 tokens)

Reference data: get all news language codes for use as filter values in news searches (free, no credits)

### `search_technologies` (~42 tokens)

Reference data: search for technology names by keyword to find valid technology filter values (free, no credits)

Input parameters:

- `keyword` (string): Keyword to search technologies

### `search_technology_categories` (~45 tokens)

Reference data: search for technology category names by keyword to find valid technology category filter values (free, no credits)

Input parameters:

- `keyword` (string): Keyword to search technology categories

### `search_verticals` (~43 tokens)

Reference data: search for industry vertical names by keyword to find valid vertical filter values (free, no credits)

Input parameters:

- `keyword` (string): Keyword to search verticals

### `search_vertical_categories` (~44 tokens)

Reference data: search for vertical category names by keyword to find valid vertical category filter values (free, no credits)

Input parameters:

- `keyword` (string): Keyword to search vertical categories

### `search_vertical_sub_categories` (~49 tokens)

Reference data: search for vertical sub-category names by keyword to find valid vertical sub-category filter values (free, no credits)

Input parameters:

- `keyword` (string): Keyword to search vertical sub-categories

### `create_monitor` (~374 tokens)

Create a new signal monitor to track jobs, news, or advertisements for specified companies

Input parameters:

- `companies` (string): Comma-separated company UUIDs to monitor
- `company_filters` (string): Advanced company filters as JSON string
- `description` (string): Monitor description
- `destination_type` (string, required): Destination type: "webhook", "email", or "outreach_sequence"
- `detection_mode` (string, required): Detection mode: "new" or "new_and_updated"
- `domains` (string): Comma-separated company domains to monitor
- `email` (string): Email address (required when destination_type is "email")
- `frequency_minute` (number): Check frequency in minutes
- `is_company_enrichment` (boolean): Enable company enrichment on trigger
- `is_people_enrichment` (boolean): Enable people enrichment on trigger
- `linkedin_urls` (string): Comma-separated company LinkedIn URLs to monitor
- `max_daily_trigger` (number): Maximum daily triggers
- `max_failure_trigger` (number): Maximum failure triggers before pausing
- `max_records_per_trigger` (number): Maximum records per trigger
- `max_retry_per_trigger` (number): Maximum retries per trigger
- `name` (string, required): Monitor name
- `notification_email` (string): Email for failure notifications
- `people_enrichment_configs` (array): People enrichment configuration array
- `retry_delay_second` (number): Retry delay in seconds
- `sequence_identifier` (string): Outreach sequence identifier (required when destination_type is "outreach_sequence")
- `signal_filters` (array): Signal-specific filters array
- `signal_types` (array, required): Signal types to monitor: "jobs", "news", "advertisements"
- `webhook_url` (string): Webhook URL (required when destination_type is "webhook")

### `update_monitor` (~320 tokens)

Update an existing signal monitor configuration

Input parameters:

- `companies` (string): Comma-separated company UUIDs to monitor
- `company_filters` (string): Advanced company filters as JSON string
- `description` (string): Monitor description
- `detection_mode` (string): Detection mode: "new" or "new_and_updated"
- `domains` (string): Comma-separated company domains to monitor
- `frequency_minute` (number): Check frequency in minutes
- `is_active` (boolean): Whether the monitor is active
- `is_company_enrichment` (boolean): Enable company enrichment on trigger
- `is_paused` (boolean): Whether the monitor is paused
- `is_people_enrichment` (boolean): Enable people enrichment on trigger
- `linkedin_urls` (string): Comma-separated company LinkedIn URLs to monitor
- `max_daily_trigger` (number): Maximum daily triggers
- `max_failure_trigger` (number): Maximum failure triggers before pausing
- `max_records_per_trigger` (number): Maximum records per trigger
- `max_retry_per_trigger` (number): Maximum retries per trigger
- `monitor_id` (string, required): Monitor UUID to update
- `name` (string): Monitor name
- `notification_email` (string): Email for failure notifications
- `people_enrichment_configs` (array): People enrichment configuration array
- `retry_delay_second` (number): Retry delay in seconds
- `signal_filters` (array): Signal-specific filters array
- `signal_types` (array): Signal types: "jobs", "news", "advertisements"

### `get_monitor` (~43 tokens)

Get detailed information about a specific signal monitor

Input parameters:

- `is_signature_reveal` (boolean): Whether to reveal the webhook signature
- `monitor_id` (string, required): Monitor UUID

### `list_monitors` (~74 tokens)

List all signal monitors with pagination and sorting

Input parameters:

- `is_ascending_order` (boolean): Sort in ascending order
- `order_by` (string): Sort field: "created_at", "last_modified", or "name"
- `page` (number): Page number
- `per_page` (number): Results per page

### `delete_monitor` (~27 tokens)

Permanently delete a signal monitor

Input parameters:

- `monitor_id` (string, required): Monitor UUID to delete

### `duplicate_monitor` (~46 tokens)

Create a copy of an existing signal monitor with an optional new name

Input parameters:

- `monitor_id` (string, required): Monitor UUID to duplicate
- `name` (string): Name for the duplicated monitor

### `test_run_monitor` (~54 tokens)

Execute a test run of a signal monitor to preview what it would trigger

Input parameters:

- `monitor_id` (string, required): Monitor UUID to test
- `tried_at` (string): ISO 8601 timestamp to simulate the run at

### `retry_monitor` (~58 tokens)

Retry a failed monitor trigger by log ID

Input parameters:

- `is_use_original_destination` (boolean): Whether to use the original destination configuration
- `monitor_id` (string, required): Monitor UUID
- `monitor_log_id` (string, required): Monitor log ID to retry

### `get_monitor_stats` (~17 tokens)

Get aggregate statistics across all signal monitors

### `get_monitor_logs` (~50 tokens)

Get trigger logs for a specific signal monitor with pagination

Input parameters:

- `monitor_id` (string, required): Monitor UUID
- `page` (number): Page number
- `per_page` (number): Results per page

### `lookup_monitor_log` (~36 tokens)

Look up detailed information about a specific monitor trigger log entry

Input parameters:

- `monitor_log_id` (string, required): Monitor log UUID to look up

### `reveal_monitor_signature` (~33 tokens)

Reveal the webhook signature secret for a monitor (for verifying webhook deliveries)

Input parameters:

- `monitor_id` (string, required): Monitor UUID

### `get_profile` (~20 tokens)

Get the full profile information for the authenticated Pubrio account

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 16
- 2026-07-31: 1
- 2026-07-30: 40
- 2026-07-28: 18
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/pubrio-mcp-server
- Socket report: https://socket.dev/npm/package/pubrio-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/pubrio-pubrio/pubrio-mcp-server
