ProtoMap is a context engine and model harness. It scans your source code and gives engineers and coding agents
organization-wide context on every gRPC service and Protobuf message: callers, dependencies, call sites, and
field-level dataflows.
Claude Code with Opus 5.5 at high effort, across 20 prompts on 9 gRPC repositories (5M LOC), with
higher accuracy (100% vs. 98%). See the benchmarks
Products
ProtoMap and the Privacy Code Scanner
For engineering teams and coding agents
ProtoMap
A context engine and model harness for gRPC and Protobuf. Engineers query it in plain English; coding agents
query it over MCP instead of grepping across repositories.
Callers, dependencies, call sites, and field-level dataflows
13× fewer tokens and 7.7× faster answers in the benchmarks
Free on one machine; cloud or on-premises for your organization
Engineering: gRPC and Protobuf context for your coding agents
The gap
API specs alone don't cover the services and fields consuming your APIs.
→
The cost
Without it, agents spend tokens grepping repositories and writing ad hoc scripts to parse code relationships, often on code that isn't checked out locally, and still miss callers.
Privacy: code-based GDPR data maps and RoPA evidence
The gap
Processing activities fall out of sync with the code: surveys don't scale and produce stale or guessed answers, GRC platforms ship blank templates, and privacy platforms infer flows after deployment, missing shadow AI and SDKs in code.
→
The cost
Stale evidence: documentation weeks or months behind the code, and reported processing activities that diverge from implementation with every release.
→
With HoundDog.ai
GDPR data mapping grounded in code-based evidence across logs, storage, APIs, third-party and AI SDKs, keeping your RoPA current at development speed so you prevent risks instead of reacting after the fact.
Data Security: stop PII, PHI, and secrets before they leak
The gap
DSPM gives you posture and DLP removes or redacts sensitive data, but both react once the data is already there. Neither prevents it.
→
The cost
When PII, PHI or auth tokens leak into logs, remediation is disruptive: often hundreds of hours scrubbing logs, auditing access and halting ingestion by third-party monitoring and SIEM tools.
The questions behind every cross-service change, answered from code.
Engineers ask in plain English in the web platform. Coding agents ask over MCP. Both get the same deterministic
answer.
Multi-hop service dependencies
What breaks if I change this service?
Visualize the blast radius up to five hops out, with callers in blue and callees in red, and drill down into every caller, callee and method.
Method dependencies
Who calls this RPC, and from where?
Callers and callees of a method two hops out, plus every call site with the calling method and its file location.
Field name dependencies
What is the blast radius of changing product_id?
The message that carries the field, where it is defined, and the services and repositories that send or receive it.
Code owners
Who depends on this service, and who do I notify?
Every inbound service and the repository it lives in, plus the maintainers and dependents of each service.
Unused RPCs
Which RPCs can we clean up?
RPCs with no callers or call sites in the scanned code, plus what to check before you remove each one.
ProtoMap By HoundDog.ai
New chatMessageDispatchCoordination blast radius···
Ask ProtoMap about your code and dataList all gRPC servicesWhich services call <RPC method>?What is the blast radius of changing <field name>?
What breaks if I change MessageDispatchCoordination?
Thinking…
› 3 graph queries, 1 workspace view
MessageDispatchCoordination has 42 callers and 6 callees, five hops out each way:
Every caller goes through its one method, Dispatch.AuthService is among its 6 callees.Invoicing services, such as CreditNotePublication, call it most.
Shown in the workspaceService
MessageDispatchCoordination
What breaks if I change MessageDispatchCoordination?Ask about your code and data…
Opus 5.5 · High
↑
ServicesSearch services, methods, and fields
+−◎
20 services
ServiceMethodsCallers
ServiceAuthService41,000
ServiceCartService32
Servicesname: MessageDispatchCoordination
reach: Callers and callees (5 hops)
CallersServiceApprovalThresholdAssessmentServiceCreditNoteAmountCalculationServiceCreditNotePublicationServiceCreditNoteReasonValidationServiceInvoiceApprovalCoordination1–5 of 42 total
CalleesServiceAccessDecisionCoordinationServiceAuthServiceServiceCommunicationConsentAssessmentServiceDeliveryChannelSelectionServiceMessageDeliveryPreparation1–5 of 6 total
With the self-hosted or cloud platform, your organization’s data map becomes queryable in plain English.
An AppSec engineer asks which sensitive data and auth tokens are leaking into application logs.
Show me all sensitive data and auth tokens leaking in application logs
HoundDog.ai Acme CorpDatamapDataflowsRoPA
New chatShow me all sensitive data and auth tokens leaking in application logs···
Ask HoundDog.ai about your dataSuggested for youWhich repositories handle medical data?Show me the most severe open risky dataflows right nowWhich third parties receive PII?Which AI services receive sensitive data in our code?What data elements are present in my code?
Show me all sensitive data and auth tokens leaking in application logs
Searching…
Read data sink rules
Read data sink rules
Read data sink rules
Read data element rules
Searched the datamap
Searched the datamap
Opened a page
Data elementSensitivitySinksRisky dataflows
PasswordHigh (secret)Logs10
IP AddressMedium (PII)Logs16
EmailLow (PII)Logs, Standard Output, Standard Error25
UsernameLow (PII)Logs, Standard Output15
First NameLow (PII)Standard Output4
Last NameLow (PII)Standard Output4
By sink
Logs: 50 risky dataflows, in both repositories. They carry Email, IP Address, Password, and Username.Standard Output: 13 risky dataflows, in ever-co/ever-gauzy only. They carry Auth Token, Email, First Name, Last Name, and Username.Standard Error: 1 risky dataflow, in ever-co/ever-gauzy only. It carries Email.
The highest-sensitivity findings are the Auth Token going to Standard Output in ever-gauzy and the Password going to Logs in adempiere.
Dataflows
Show me all sensitive data and auth tokens leaking in application logsAsk about your data…
↑
Repositories+ Add search filterDataflowsData Sink: Logs, Standard Output, Standard Error
Severity: High, Medium, Low
Status: Open
The database user password (databasePassword) is added to an error string that is written to the application log with log.warning(error) when the test connection fails.
Remediation
Remove the offending code or sanitize the data.
Activity
TimeEventByOctober 28, 2026, 10:25:52 AM UTCReviewed with AIHoundDog.ai AI reviewOctober 28, 2026, 10:25:48 AM UTCOpened on developHoundDog.ai scanner
If this dataflow is expected or a false positive, you can ignore it, or permanently allowlist specific data elements
sent to Logs in Data Sink Rules.
A privacy engineer asks which third-party integrations receive PII.
Which third parties receive PII?
HoundDog.ai Acme CorpDatamapDataflowsRoPA
New chatWhich third parties receive PII?···
Ask HoundDog.ai about your dataSuggested for youWhich repositories handle medical data?Show me the most severe open risky dataflows right nowWhich third parties receive PII?Which AI services receive sensitive data in our code?What data elements are present in my code?
Which third parties receive PII?
Searching…
Searched the datamap
Opened a page
Two third-party data sinks receive PII, counting PHI, PIFI and CHD as PII. Both are in one repository, hounddogai/hounddog-test-python, on the main branch:
Third partyData elementTag and sensitivityDataflows
OpenAIMedical HistoryPHI, high1 risky dataflow
SentryPhone NumberPII, medium1 risky dataflow
I've opened the Datamap's Data Sinks view filtered to these two sinks.
Datamap · Data Sinks
Which third parties receive PII?Ask about your data…
↑
Repositories+ Add search filterData SinksData Sink: OpenAI, Sentry
Data Element Tag: PII, PHI, PIFI, CHD
Data Sink Tag: 3P
1
First detected here
pages/1_Patient_Management.py:60
60medical_history
2
Placed inside a string and assigned to 'patient_context'
pages/1_Patient_Management.py:291
291patient_context = (292"You are an assistant for clinicians. Use only the provided patient data unless the user "293"explicitly asks for general medical knowledge.\n\n"294"Patient Information:\n"295f"- Medical History: {medical_history}\n\n"296"Recent Health Metrics:\n"297f"{metric_lines or 'None recorded'}\n\n"298"Recent Medical Records:\n"299f"{record_lines or 'None recorded'}"300)
3
Wrapped in langchain_core.messages.SystemMessage and assigned to 'messages'
pages/1_Patient_Management.py:322
322messages: list[BaseMessage] = [SystemMessage(content=patient_context)]
4
Sent via LangChain and sent to OpenAI
pages/1_Patient_Management.py:335
335llm.invoke(messages)
Diagram
Medical HistoryPHIRISKY1 dataflowhounddogai/hounddog-test-pythonBranch: main1_Patient_Management.py:3351 dataflowOpenAI3PAIRISKY
Privacy Analysis
The selected patient's medical history, recent health metrics and medical records are put into a system prompt (patient_context) that is sent with ChatOpenAI.invoke to OpenAI, a third-party AI provider.
Remediation
Remove the offending code or sanitize the data.
Activity
TimeEventByOctober 28, 2026, 10:36:15 AM UTCReviewed with AIHoundDog.ai AI reviewOctober 28, 2026, 10:35:20 AM UTCOpened on mainHoundDog.ai scanner
If this dataflow is expected or a false positive, you can ignore it, or permanently allowlist specific data elements
sent to OpenAI in Data Sink Rules.
An AI governance team asks which AI integrations exist and what sensitive data reaches them.
Which AI services receive sensitive data in our code?
HoundDog.ai Acme CorpDatamapDataflowsRoPA
New chatWhich AI services receive sensitive data in our code?···
Ask HoundDog.ai about your dataSuggested for youWhich repositories handle medical data?Show me the most severe open risky dataflows right nowWhich third parties receive PII?Which AI services receive sensitive data in our code?What data elements are present in my code?
Which AI services receive sensitive data in our code?
Searching…
Searched the datamap
Opened a page
One AI service receives sensitive data in your scanned code: OpenAI.
Data element: Medical History (PHI, high sensitivity).Where: the main branch of the hounddogai/hounddog-test-python repository, in one file.Dataflows: one confirmed dataflow, and it is risky.
No other AI data sinks have confirmed sensitive-data flows. I've opened the Data Sinks view in the Datamap, filtered to AI sinks. To triage the risky dataflow, use the Dataflows page.
Datamap · Data Sinks
Which AI services receive sensitive data in our code?Ask about your data…
↑
Repositories+ Add search filterData SinksData Element Sensitivity: High, Medium, Low
Data Sink Tag: AI
1
First detected here
pages/1_Patient_Management.py:60
60medical_history
2
Placed inside a string and assigned to 'patient_context'
pages/1_Patient_Management.py:291
291patient_context = (292"You are an assistant for clinicians. Use only the provided patient data unless the user "293"explicitly asks for general medical knowledge.\n\n"294"Patient Information:\n"295f"- Medical History: {medical_history}\n\n"296"Recent Health Metrics:\n"297f"{metric_lines or 'None recorded'}\n\n"298"Recent Medical Records:\n"299f"{record_lines or 'None recorded'}"300)
3
Wrapped in langchain_core.messages.SystemMessage and assigned to 'messages'
pages/1_Patient_Management.py:322
322messages: list[BaseMessage] = [SystemMessage(content=patient_context)]
4
Sent via LangChain and sent to OpenAI
pages/1_Patient_Management.py:335
335llm.invoke(messages)
Diagram
Medical HistoryPHIRISKY1 dataflowhounddogai/hounddog-test-pythonBranch: main1_Patient_Management.py:3351 dataflowOpenAI3PAIRISKY
Privacy Analysis
The selected patient's medical history, recent health metrics and medical records are put into a system prompt (patient_context) that is sent with ChatOpenAI.invoke to OpenAI, a third-party AI provider.
Remediation
Remove the offending code or sanitize the data.
Activity
TimeEventByOctober 28, 2026, 10:36:15 AM UTCReviewed with AIHoundDog.ai AI reviewOctober 28, 2026, 10:35:20 AM UTCOpened on mainHoundDog.ai scanner
If this dataflow is expected or a false positive, you can ignore it, or permanently allowlist specific data elements
sent to OpenAI in Data Sink Rules.
Static analysis discovers. AI reasons. MCP delivers.
Why not just use an LLM?
HoundDog.ai is built to make your AI more effective, not to replace it.
01
Tokens for reasoning, not discovery.
The scanners discover every gRPC service, Protobuf field and sensitive dataflow, so your AI tokens go to assessing the blast radius, planning changes, triaging risk and answering questions.
02
Evidence you can stand behind.
The same commit always produces the same context. Every engineer, privacy reviewer and agent gets the same answer about what a change will break and where sensitive data goes, instead of output that varies with the prompt.
03
Easy to roll out org-wide.
The Rust scanner runs in CI on standard CPU infrastructure, across every repo and every commit, with negligible impact on build times.
The business case
Measured results
ProtoMap
Change planning & AI coding agents
Headline result8×
reduction in tokens and time for change-planning tasks (enterprise customer, monorepo of millions of lines of code).
Cost$4.46 → $0.20
for a single prompt, 8m 13s down to 27s
(Claude Code, Opus 5.5). See the benchmarks
SpeedEvery commit
context refreshes in CI on standard CPU infrastructure.
Privacy Code Scanner
GDPR data mapping, RoPA & leak prevention
Headline result90%
less manual data-mapping effort (Fortune 500 outcome).
Cost$2M
saved by one customer in eng hours and masking tooling.
Speed< 5 min
to remediate a flagged exposure, fix suggested in the PR.
ProtoMap's figures are from its benchmarks, for one prompt (Q09, finding every caller of a method to remove
it): Claude Code with Opus 5.5 at high effort, on 9 gRPC repositories with 5 million lines of code, with and without ProtoMap. Results vary by model, repository, prompt and task.
Flagship deployment
HoundDog.ai + Replit
50M
Users protected
100k
Scans daily
100+
Data types
Detects leaks before publishing. Auth tokens and passwords in logs or local storage, caught at scan time.
Flags unscoped AI & third-party flows. PII/PHI to integrations that don't match published privacy notices.
Privacy by default, not retrofit. AI-generated apps embed GDPR & CCPA best practices from day one.
Try it on your code.
Install the self-hosted version for free. It runs on your machine with Docker, and your source code stays in your environment.
Set up ProtoMap and show me what it can do. ProtoMap maps gRPC services and protobuf messages across repositories, and gives coding agents that graph over MCP. Docs: https://docs.protomap.ai/quickstart/
Tell me what you are about to do before each step that installs something.
1. Check that this computer has git, Docker with Compose 2.23.1 or newer, at least 4 GB of RAM, and 20 GB of disk space. If anything is missing, tell me and stop.
2. Install ProtoMap Server, in a folder outside this repository:
git clone https://github.com/hounddogai/protomap.git
cd protomap
./self-hosted/scripts/install.sh
The installer asks questions. Choose Trial, which runs PostgreSQL locally and logs the CLI in, and keep the default port.
3. Show me the address and the one-time setup key the installer prints. Ask me to open the address, enter the key, and create my organization and owner account. Wait until I say that's done.
4. Scan this repository, from a new shell so the CLI is on the PATH:
protomap scan .
If it has no gRPC services in a supported language, tell me, and offer to scan a public example instead:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
protomap scan microservices-demo
5. From the scanned repository's folder, add ProtoMap to yourself as an MCP server:
Claude Code: claude mcp add protomap -- protomap mcp serve
Codex: codex mcp add protomap -- protomap mcp serve
Antigravity: add "protomap": { "command": "protomap", "args": ["mcp", "serve"] } under mcpServers in ~/.gemini/config/mcp_config.json
Others: https://docs.protomap.ai/coding-agents/
Tell me if I need to restart you for it to take effect.
6. Tell me what the scan found, then use ProtoMap's tools to answer one question about my services, such as which services call a method and where. Suggest two more questions I could ask.