MCP server for Swiss public transport – OJP journey planner, real-time departures, disruptions, occupancy, ticket prices, train formations and open data from opentransportdata.swiss
The publisher performed an authenticated act of publication — proving control of a namespace in the official MCP registry, or appearing in a first-party catalogue an operator curates. That establishes WHO published it. It is not a security finding, and attested artifacts carry Flagged verdicts too.
pypi: swiss-transport-mcp @ 0.4.0, 0 findings
Choose your runtime: the CLI writes the mcpServers config entry for that target.
nerlo install --target claude-code -- swiss-transport-mcp
Install respects the composite badge: Clean proceeds, Caution prompts for confirmation, and Flagged is refused. Write operations require an API token.
6 of 11 scanners examined this package. The rest do not apply to it — language, ecosystem and packaging decide which analyzers can say anything, and a scanner that cannot examine an artifact reports nothing rather than passing it.
v1.4.0
8 findings · 0.5s
v2.0.11
29 findings · 8.7s
v0.3.74
13 findings · 4.0s
v0.2.0
0 findings · 4.0s
v0.2.0
1 finding · 4.0s
v0.1.0
0 findings · 10.3s
vv0.3.2
No Go packages were found in this artifact. What each scanner covers
0 findings · 0.1s
v0.71.0
No dependency manifest or lockfile was found in this artifact. What each scanner covers
0 findings · 0.2s
v2.3.8
No dependency manifest or lockfile was found in this artifact. What each scanner covers
0 findings · 0.2s
v0.71.0
No container image was published for this artifact. What each scanner covers
0 findings · 0.0s
vv1.6.0
No Go modules were found in this artifact. What each scanner covers
0 findings · 0.1s
3 scans on record. Every scan's full results are retained immutably for 24 months.
| Completed | Composite | Change | Scanners | Status |
|---|---|---|---|---|
| Sep 15, 2026 | Flagged78 | — | agentshield: completecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completecapslock ·n/a: not applicablenerlo-multi-source: completetrivy ·n/a: not applicableosv-scanner ·n/a: not applicabletrivy_image ·n/a: not applicablegovulncheck ·n/a: not applicable | completed |
| Sep 11, 2026 | Flagged78 | — | agentshield: completecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completecapslock ·n/a: not applicablenerlo-multi-source: completetrivy ·n/a: not applicableosv-scanner ·n/a: not applicabletrivy_image ·n/a: not applicablegovulncheck ·n/a: not applicable | completed |
| Jul 31, 2026 | Flagged75 | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completenerlo-multi-source: completetrivy ·n/a: not applicableosv-scanner ·n/a: not applicabletrivy_image ·n/a: not applicable | completed |
Findings in files this artifact installs stand as reported; a model re-read the rest and said which ones it believes are false positives. This is a second opinion published beside the evidence, not a correction to it: the per-scanner reports above are unchanged, every dismissed finding is still listed there at its original severity, and the score and the Flagged badge are computed from those raw severities alone. Nothing below moved them.
Out of 51 findings across every scanner that examined this package.
Two keys had to turn. The model had to name a reason from a fixed list of six, and a deterministic check of ours — over which files this artifact actually installs — had to independently agree. Anything it could not corroborate is in “not reviewed” above, at full severity.
5 Agent instruction file — The match is in a file that instructs an AI coding agent — a CLAUDE.md or similar. It is documentation of intent, and our own check confirmed it is not part of what gets installed.
Rules: SOCIAL_ENG_VAGUE_DESCRIPTION, MANIFEST_MISSING_LICENSE, MANIFEST_INVALID_NAME · Files: /repo/.github/SKILL.md, /repo/tests/fixtures/SKILL.md · reported by cisco-skill-scanner
4 Test or fixture file — The match is in a test or fixture. Our own check confirmed the file is not part of what gets installed.
Rules: AAK-SECRET-004, AAK-MCP-STATELESS-001, AAK-IPI-WILD-CORPUS-001 and 1 more · Files: tests/test_server.py, tests/test_cors.py, tests/test_server_config.py and 1 more · reported by agent-audit-kit, cisco-skill-scanner
1 CI or editor configuration — The match is in build, CI or editor configuration, confirmed by our own check to be outside the installed artifact.
Rules: AAK-GHA-IMMUTABLE-001 · Files: .github/workflows/publish.yml · reported by agent-audit-kit
These findings are in files this artifact installs and are not placeholder values. No false-positive basis can be corroborated for such a finding, so this review never dismisses one; they were not sent to the model and stand at their scanner's severity.
9 MANIFEST_MISSING_LICENSE
Files: /repo/SKILL.md, /repo/audits/SKILL.md, /repo/.claude/hooks/SKILL.md and 6 more · reported by cisco-skill-scanner
9 SOCIAL_ENG_VAGUE_DESCRIPTION
Files: /repo/SKILL.md, /repo/audits/SKILL.md, /repo/.claude/hooks/SKILL.md and 6 more · reported by cisco-skill-scanner
3 AAK-SECRET-004
Files: src/swiss_transport_mcp/server.py · reported by agent-audit-kit
3 MANIFEST_INVALID_NAME
Files: /repo/audits/2026-06-03T082024-Z-swiss-transport-mcp/SKILL.md, /repo/audits/2026-06-03T064903-Z-swiss-transport-mcp/SKILL.md, /repo/audits/2026-06-03T083922-Z-swiss-transport-mcp/SKILL.md · reported by cisco-skill-scanner
2 AAK-MCP-STATELESS-001
Files: src/swiss_transport_mcp/server.py, audits/2026-06-03T064903-Z-swiss-transport-mcp/findings/_generator.py · reported by agent-audit-kit
1
Potential credential exposure, SSRF, and unauthenticated access
The artifact contains hardcoded secrets within `src/swiss_transport_mcp/server.py`, which could lead to credential access. It also exhibits Server-Side Request Forgery (SSRF) capabilities in `src/swiss_transport_mcp/server.py` and allows unauthenticated access by default in `docker-compose.yml`. Additionally, several hooks in `hooks/check-clone-freshness.sh` disable logging and run background processes, hindering observability and control.
Concern level assessed by the review: High. This is the review's scale, not the registry badge.
Reviewed by gemini-2.5-flash. The model sees the findings, not your code, and cannot change a score.
Files: docker-compose.yml · reported by agent-audit-kit
1 AAK-SECRET-007
Files: claude_desktop_config.json · reported by agent-audit-kit
1 AAK-SSRF-002
Files: src/swiss_transport_mcp/server.py · reported by agent-audit-kit
1 AAK-SUPPLY-004
Files: pyproject.toml · reported by agent-audit-kit
1 EXCESSIVE_FILE_COUNT
Files: /repo/. · reported by cisco-skill-scanner
1 hooks-bg-process-2034
Files: hooks/check-clone-freshness.sh · reported by agentshield
1 hooks-logging-disabled-3112
Files: hooks/check-clone-freshness.sh · reported by agentshield
1 hooks-logging-disabled-3299
Files: hooks/check-clone-freshness.sh · reported by agentshield
1 hooks-logging-disabled-3429
Files: hooks/check-clone-freshness.sh · reported by agentshield
1 hooks-logging-disabled-4589
Files: hooks/check-clone-freshness.sh · reported by agentshield
1 hooks-no-pretooluse
Files: settings.json · reported by agentshield
1 hooks-no-stop-hooks
Files: settings.json · reported by agentshield
1 opt.nerlo-rules.nerlo-install-run-bundled-artifact
Files: /repo/README.md · reported by nerlo-install-instruction
1 permissions-no-block
Files: settings.json · reported by agentshield
1 TOOL_ABUSE_UNDECLARED_NETWORK
Files: /repo/repo/CHANGELOG.md · reported by cisco-skill-scanner