# NarcoScope — illicit-economy evidence atlas

> Read bounded illicit-economy evidence with provenance, privacy, availability, and federation intact.

- name: io.github.beepboop2025/narcoscope
- version: 1.6.0
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.beepboop2025%2Fnarcoscope
- tools: https://api.protogrid.dev/v1/servers/io.github.beepboop2025%2Fnarcoscope/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "narcoscope": {
      "type": "http",
      "url": "https://www.narcoscope.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-42d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 300000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 14 of 14 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_palimpsest_bri_context (idempotentHint); get_federation (idempotentHint); query_market_observations (idempotentHint); …
- pass `tools.token_cost`: about 1,871 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 14, about 1,871 tokens to load them all
- tool set hash: be1ce5f429a89794f6dacb6bb70b3e9b
- tools last changed: 2026-10-15T09:47:02.692Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.beepboop2025/narcoscope.svg)](https://protogrid.dev/servers/io.github.beepboop2025/narcoscope)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-15 `get_market_catalog` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: List drugs, arms and informal-economy datasets, native indicator units, exact country/category/subgroup dimensions, numeric and unavailable coverage, source hashes and source-specific reuse restrictions. Legacy atlas and price histories remain distinct resources.
  - after: Page drugs, arms and informal-economy indicators (page/limit, maximum 4), with native units, full coverage totals and licenses for sources on the page. Country/category/subgroup/selection lists have independent dimensionPagination; follow dimensionPage with the same dataset/indicator filters (dimensionLimit maximum 50). Retain dataset hashes across pages. Legacy atlas and prices remain distinct resources.

Full history: https://api.protogrid.dev/v1/servers/io.github.beepboop2025%2Fnarcoscope/changes

## Remotes

- https://www.narcoscope.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (14)

- `get_atlas`: Return country-year organized-crime and firearms-tracing observations with source metadata, native caveats, explicit null fields, and stable cursor pagination. No records identify people or operational locations.
- `get_connected_research`: Return source-linked China economic findings, CPEC, Balochistan, BRI and Myanmar research questions, reporting metadata, and dated national indicators. Optional hash-bound observatory summaries add economic histories, EU-reported trade and official methodology cases. SAFE quantities remain private. Country and theme context only; gaps do not establish concealment, actor relationships or causality.
- `get_entities`: Return approved public designation identity fields only. A designation is an administrative action, not an adjudication or proof of guilt; aliases, addresses, dates of birth, identity documents, and allegation text are withheld.
- `get_federation`: Return bounded public money-market, capital-market, BRI, or publication-rights context without cross-lane scoring, composites, causal inference, or culpability inference. Upstream unavailability stays typed.
- `get_market_catalog`: Page drugs, arms and informal-economy indicators (page/limit, maximum 4), with native units, full coverage totals and licenses for sources on the page. Country/category/subgroup/selection lists have independent dimensionPagination; follow dimensionPage with the same dataset/indicator filters (dimensionLimit maximum 50). Retain dataset hashes across pages. Legacy atlas and prices remain distinct resources.
- `get_newsroom`: List current deterministic analyses with citations, correction metadata, publication gates, and explicit evidence limits.
- `get_overview`: Return bounded headline aggregates across official prices, seizures, overdose mortality, wastewater, and public designations.
- `get_palimpsest_bri_context`: Return pinned source readiness and national WDI coverage for CPEC, Gwadar, CMEC, Kyaukpyu, and Balochistan as a parallel context lane. Cross-lane drug, actor, route, guilt, political, project, causal, tactical, and navigable inference or use is prohibited.
- `get_palimpsest_bridge`: Return the official-only China aggregate shared with the Intelligence Commons, including disclosure and causal boundaries.
- `get_palimpsest_corridors`: Return official country-level China, Pakistan, and Myanmar aggregates with missing-data, provenance, disclosure, and geography-and-time-only join rules.
- `get_story`: Fetch one story as metadata, a machine brief, or the cited dossier. Use the machine brief first for agent workflows.
- `list_capabilities`: List the evidence explorer, newsroom, API, feeds, MCP tools, audiences, and safety boundaries.
- `query_market_observations`: Filter published observations by dataset, indicator, geography, category, subgroup and inclusive reference period with bounded stable pagination (default 200, maximum 500). Retain dataset hashes across pages. Units, source locators, estimates and unavailable values remain explicit. No market-size aggregation, unit conversion or causal inference.
- `research_network`: Read Palimpsest’s complete source catalog by topic alongside Seiche funding context, with next steps into LiquiLens filings and Undertow liquidity. Source dates, rights and missingness stay attached; no actor, route, criminal or causal inference is implied.
