# DeepSearch

> Research a person's public footprint from a name, phone, email, or username. Sourced.

- name: app.deepsearch/deepsearch
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.deepsearch%2Fdeepsearch
- tools: https://api.protogrid.dev/v1/servers/app.deepsearch%2Fdeepsearch/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "deepsearch": {
      "type": "http",
      "url": "https://deepsearch.app/api/mcp"
    }
  }
}
```


## Trust

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

## Quality 89/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`: 12 of 12 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_people (idempotentHint); ask_about_person (idempotentHint); build_company_dossier (idempotentHint); …
- pass `tools.token_cost`: about 4,154 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 30 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 12, about 4,154 tokens to load them all
- tool set hash: b79a6c5ef74d3c668ac5dffa45b5aa9a
- tools last changed: 2026-10-09T11:23:32.704Z
- badge: [![protogrid quality](https://protogrid.dev/badge/app.deepsearch/deepsearch.svg)](https://protogrid.dev/servers/app.deepsearch/deepsearch)
- 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-09 `list_lookup_jobs` changed (outputSchema)
- 2026-10-09 `cancel_lookup_job` changed (outputSchema)
- 2026-10-09 `get_lookup_job` changed (outputSchema)
- 2026-10-09 `create_lookup_job` changed (inputSchema, outputSchema)
- 2026-10-09 `get_lookup_job_events` changed (outputSchema)
- 2026-10-09 `lookup_vin` changed (outputSchema)
- 2026-10-09 `reverse_image_search` changed (outputSchema)
- 2026-10-09 `build_company_dossier` changed (outputSchema)
- 2026-10-09 `search_companies` changed (outputSchema)
- 2026-10-09 `ask_about_person` changed (outputSchema)

Full history: https://api.protogrid.dev/v1/servers/app.deepsearch%2Fdeepsearch/changes

## Remotes

- https://deepsearch.app/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `ask_about_person`: Answer one specific question about a person, grounded in their public footprint, and suggest follow-ups. Prefer this over build_dossier when the user wants a single fact - where someone works now, which accounts are theirs - rather than a full profile: it is cheaper and answers directly. Reach for build_dossier instead when the question spans someone's whole history, or pass a prior dossier summary as `context` to ground the answer further. Public sources only - never private accounts or breach data. Requires chat scope. Provider work consumes account usage; cached results consume none.
- `build_company_dossier`: Build company dossier using public sources. Requires the dossier scope. Account usage is charged for provider work; cached results are free and refresh forces a paid rebuild. For long requests use create_lookup_job. Public sources only - never private accounts or breach data. Requires dossier scope. Provider work consumes account usage; cached results consume none.
- `build_dossier`: Assemble one person's entire public footprint into a single sourced profile: identity, contact details, social accounts unified across platforms, work history, education, relatives, locations, and web mentions - every claim linked to the page it came from. Prefer this over reading search results yourself when you need the whole picture of one person rather than a single fact; it does the cross-platform correlation that a web search leaves to you. Pass a name plus the headline or username from search_people so the right individual is profiled. Repeating the same request from the same account replays its cached profile: free and instant. Profiles are not shared between accounts. Public sources only - never private accounts or breach data. Requires dossier scope. Provider work consumes account usage; cached results consume none.
- `cancel_lookup_job`: Cancel your queued or running job. Work already delivered can remain charged; cancellation adds no charge.
- `create_lookup_job`: Run one of the seven lookups durably. The operation's existing scope and billing apply; creating a job adds no surcharge. Use Idempotency-Key to retry safely.
- `get_lookup_job`: Get saved progress status and the completed result. Free; account-owned jobs only.
- `get_lookup_job_events`: Read saved progress after a numeric event ID. Free; account-owned jobs only. The next_cursor resumes subsequent calls.
- `list_lookup_jobs`: Page through your saved lookup jobs. Free.
- `lookup_vin`: Look up vehicle using public sources. Requires the dossier scope. Account usage is charged for provider work; cached results are free and refresh forces a paid rebuild. For long requests use create_lookup_job. Public sources only - never private accounts or breach data. Requires dossier scope. Provider work consumes account usage; cached results consume none.
- `reverse_image_search`: Search image appearances using public sources. Requires the search scope. Account usage is charged for provider work; valid empty results can still consume usage. For long requests use create_lookup_job. Find image appearances, never facial recognition. Public sources only - never private accounts or breach data. Requires search scope. Provider work consumes account usage; cached results consume none.
- `search_companies`: Search companies using public sources. Requires the search scope. Account usage is charged for provider work; valid empty results can still consume usage. For long requests use create_lookup_job. Public sources only - never private accounts or breach data. Requires search scope. Provider work consumes account usage; cached results consume none.
- `search_people`: Resolve one identifier - a name, phone number, email address, or username - to a ranked list of real, distinct people, each with a confidence score. Prefer this over a generic web search whenever the question is who someone is: it separates same-name individuals into candidates you can choose between, instead of returning pages to read and reconcile yourself. Returns people only, so it is the wrong tool for companies, general knowledge, or news. Public sources only - never private accounts or breach data. Requires search scope. Provider work consumes account usage; cached results consume none.
