Official Namespace Squatting
Server published as '@anthropic-tools/filesystem' by an unverified author not in the anthropics GitHub org
How this rule decides. Each strategy below is a deterministic analysis the detector runs against the MCP server's static metadata, source code, and (when present) live connection handshake.
similarity- 1
Levenshtein Distance Band
levenshtein-distance-band - 2
Visual Confusable Replay
visual-confusable-replay - 3
Substring Containment Check
substring-containment-check - 4
Publisher Url Verification
publisher-url-verification - 5
Unicode Normalisation
unicode-normalisation
What we found. Each finding below carries a structured proof chain from source (where untrusted data enters) through propagation (how it flows) to a sink (where the dangerous operation occurs), including any mitigations checked for and the potential impact if exploited. Every link is independently verifiable against the cited location.
Proof chain
4 steps from untrusted source to potential impact. Each step is independently verifiable against the cited location.
SourceExternal Content - Where
initialize.server_name- Observed
Server name "io.github.kamarusama/mcp-google-forms" matches Google namespace "google" via substring containment.
- Why untrusted
- The MCP client surfaces the server name verbatim in its approval dialog, and the LLM ingests the server name alongside the tool descriptions. A name that implies official Google origin hijacks the trust users and agents extend to the real vendor — the exact supply-chain vector Alex Birsan demonstrated in 2021 and Wiz Research documented in the MCP ecosystem in 2025.
PropagationCross Tool Flow - At
capability:tools- Observed
Publisher URL "https://github.com/kamarusama/mcp-google-forms" is NOT under any of Google's verified GitHub organisations (google, googleapis, google-gemini). The server name + publisher mismatch propagates misplaced trust to every downstream tool invocation.
SinkPrivilege Grant - Where
initialize.server_name- Observed
Users approve the server on the basis of the vendor-branded name, granting it the session-scoped trust they would extend to a genuine Google product. All subsequent tool calls execute under that elevated trust.
ImpactCross Agent Propagation - Scope
- ai-client
- Exploitability
- Trivial
- Scenario
- User installs "io.github.kamarusama/mcp-google-forms" believing it is an official Google MCP server. The LLM consumes the impersonator's tool descriptions, instructions, and output under the vendor's brand halo. Subsequent prompt injection, credential harvesting, or data exfiltration by the impersonator inherits the vendor's trust across every conversation that uses the tool.
- +0.2official_namespace_signalServer name contains the vendor token "google" verbatim and the repository is NOT under any of the vendor's verified GitHub organisations. Direct containment is the highest-confidence classifier.
- +0.08publisher_url_mismatchPublisher URL "https://github.com/kamarusama/mcp-google-forms" is NOT under any of Google's verified GitHub organisations (google, googleapis, google-gemini). Publisher mismatch + namespace match is the canonical squat signature.
- -0.08charter_confidence_capF5 charter caps confidence at 0.9 — namespace similarity + publisher mismatch is strong but not definitive. Vendor-approved partners may use the vendor namespace without a verified_github_org match, and the rule's curated vendor-org list can lag behind a rename. The 0.10 gap signals "strong static evidence, reviewer corroborates publisher identity".
OWASP-MCP10-Supply-ChainOWASP MCP Top 10 — MCP10 Supply Chain
MCP10 explicitly lists namespace squatting as a supply-chain compromise vector. A server claiming an official vendor namespace without publisher proof is a direct MCP10 indicator.
- 1
inspect-descriptionCompare the observed server name "io.github.kamarusama/mcp-google-forms" against the vendor namespace "google" (Google). The scanner classified this match via the substring-containment classifier with Damerau-Levenshtein distance 0. If the server is an official Google product, add its GitHub organisation to OFFICIAL_NAMESPACES.verified_github_orgs in the rule's data file.
Target:
initialize.server_nameExpect: Server name "io.github.kamarusama/mcp-google-forms" directly contains the vendor token "google".
- 2
compare-baselineOpen the server's repository at https://github.com/kamarusama/mcp-google-forms and confirm the owning organisation is NOT one of the vendor's verified orgs. The vendor registers the following orgs as authoritative: github.com/google/…, github.com/googleapis/…, github.com/google-gemini/…. A match against any of these suppresses the finding.
Target:
initialize.server_nameExpect: The repository owner is NOT in the vendor's verified-org list.
- 3
compare-baselineOpen the MCP registry page for "io.github.kamarusama/mcp-google-forms" (Smithery, PulseMCP, or modelcontextprotocol.io/registry). Cross-reference the stated publisher identity against Google's official publications. A recently published server with low install count and no vendor affiliation is the canonical squat pattern.
Target:
initialize.server_nameExpect: Registry publisher identity does not match Google; the server is an impersonator.
Proof chain
4 steps from untrusted source to potential impact. Each step is independently verifiable against the cited location.
SourceExternal Content - Where
initialize.server_name- Observed
Server name "io.github.kamarusama/mcp-google-forms" matches GitHub namespace "github" via substring containment.
- Why untrusted
- The MCP client surfaces the server name verbatim in its approval dialog, and the LLM ingests the server name alongside the tool descriptions. A name that implies official GitHub origin hijacks the trust users and agents extend to the real vendor — the exact supply-chain vector Alex Birsan demonstrated in 2021 and Wiz Research documented in the MCP ecosystem in 2025.
PropagationCross Tool Flow - At
capability:tools- Observed
Publisher URL "https://github.com/kamarusama/mcp-google-forms" is NOT under any of GitHub's verified GitHub organisations (github). The server name + publisher mismatch propagates misplaced trust to every downstream tool invocation.
SinkPrivilege Grant - Where
initialize.server_name- Observed
Users approve the server on the basis of the vendor-branded name, granting it the session-scoped trust they would extend to a genuine GitHub product. All subsequent tool calls execute under that elevated trust.
ImpactCross Agent Propagation - Scope
- ai-client
- Exploitability
- Trivial
- Scenario
- User installs "io.github.kamarusama/mcp-google-forms" believing it is an official GitHub MCP server. The LLM consumes the impersonator's tool descriptions, instructions, and output under the vendor's brand halo. Subsequent prompt injection, credential harvesting, or data exfiltration by the impersonator inherits the vendor's trust across every conversation that uses the tool.
- +0.2official_namespace_signalServer name contains the vendor token "github" verbatim and the repository is NOT under any of the vendor's verified GitHub organisations. Direct containment is the highest-confidence classifier.
- +0.08publisher_url_mismatchPublisher URL "https://github.com/kamarusama/mcp-google-forms" is NOT under any of GitHub's verified GitHub organisations (github). Publisher mismatch + namespace match is the canonical squat signature.
- -0.08charter_confidence_capF5 charter caps confidence at 0.9 — namespace similarity + publisher mismatch is strong but not definitive. Vendor-approved partners may use the vendor namespace without a verified_github_org match, and the rule's curated vendor-org list can lag behind a rename. The 0.10 gap signals "strong static evidence, reviewer corroborates publisher identity".
OWASP-MCP10-Supply-ChainOWASP MCP Top 10 — MCP10 Supply Chain
MCP10 explicitly lists namespace squatting as a supply-chain compromise vector. A server claiming an official vendor namespace without publisher proof is a direct MCP10 indicator.
- 1
inspect-descriptionCompare the observed server name "io.github.kamarusama/mcp-google-forms" against the vendor namespace "github" (GitHub). The scanner classified this match via the substring-containment classifier with Damerau-Levenshtein distance 0. If the server is an official GitHub product, add its GitHub organisation to OFFICIAL_NAMESPACES.verified_github_orgs in the rule's data file.
Target:
initialize.server_nameExpect: Server name "io.github.kamarusama/mcp-google-forms" directly contains the vendor token "github".
- 2
compare-baselineOpen the server's repository at https://github.com/kamarusama/mcp-google-forms and confirm the owning organisation is NOT one of the vendor's verified orgs. The vendor registers the following orgs as authoritative: github.com/github/…. A match against any of these suppresses the finding.
Target:
initialize.server_nameExpect: The repository owner is NOT in the vendor's verified-org list.
- 3
compare-baselineOpen the MCP registry page for "io.github.kamarusama/mcp-google-forms" (Smithery, PulseMCP, or modelcontextprotocol.io/registry). Cross-reference the stated publisher identity against GitHub's official publications. A recently published server with low install count and no vendor affiliation is the canonical squat pattern.
Target:
initialize.server_nameExpect: Registry publisher identity does not match GitHub; the server is an impersonator.