co.contraption/mcp
version 1.0.0
- scanned 2026-10-16
- source github.com/contraptionco/mcp
- commit 0884b6977499
- transport sse
- files read 9
- methodology 0.2.0
- ruleset 0.1.1
No tag matching version 1.0.0 was found in this repository, so the scan read the default branch instead. The findings below describe that code, not necessarily the released version.
100
88measured on 40% of this axis
0measured on 99% of this axis
1 vulnerability could not be placed in `03` §6's table and is listed but not scored
30measured on 45% of this axis
43
The evidence
Every deduction below names the artefact that produced it. Nothing on this page was executed: the source was read, never run, and no running server was contacted.
Auth Posture
- authentication_model
no authentication appears in the source we fetched, but this server's network endpoint is a hosted remote, whose authentication can be enforced in front of its code — and no credential header is declared. An undeclared header is not an absent one, so `03` §4's "no authentication" band is not established.
- transport_security
declared endpoint(s) are HTTPS: https://mcp.contraption.co/; scored 80, not 100: `03` §4 reserves 100 for HTTPS *with HSTS*, and an HSTS header can only be seen by connecting, which `04` §9 does not do. This is an unverifiable band, not an observed absence.
- secret_handling
detect-secrets matched 2 credential-shaped string(s), every one from a keyword or entropy heuristic (Secret Keyword). Those flag placeholders, variable names and content hashes as readily as credentials, so they do not establish the committed credential `03` §4's 0 asserts, and this sub-check is not scored; Secret Keyword at tests/conftest.py:9; Secret Keyword at tests/conftest.py:12
- authorization_granularity
3 tool registration(s) detected — at or below `03` §4's threshold of 3, so there is no multi-tool surface to segregate
Dependency Health
Showing the 50 most severe of 153 findings on this axis. The score was computed over all of them — findings beyond the fourth of a severity still deduct at a tenth of their weight — so the remainder is omitted from this page, not from the arithmetic.
- uv.lockchromadb 1.4.0 — PYSEC-2026-311
direct, CVSS 10.0
https://osv.dev/vulnerability/PYSEC-2026-311 - uv.lockfastmcp 2.12.3 — PYSEC-2026-338
direct, CVSS 10.0, fixed in 3.2.0
https://osv.dev/vulnerability/PYSEC-2026-338 - uv.lockchromadb 1.4.0 — PYSEC-2026-3814
direct, CVSS 9.4
https://osv.dev/vulnerability/PYSEC-2026-3814 - uv.lockpyjwt 2.10.1 — PYSEC-2026-4145
direct, CVSS 9.1, fixed in 2.14.0
https://osv.dev/vulnerability/PYSEC-2026-4145 - uv.lockcryptography 45.0.7 — PYSEC-2026-36
transitive, CVSS 9.8, fixed in 46.0.7
https://osv.dev/vulnerability/PYSEC-2026-36 - uv.lockanyio 4.10.0 — PYSEC-2026-4025
transitive, CVSS 9.3, fixed in 4.14.2
https://osv.dev/vulnerability/PYSEC-2026-4025 - uv.lockaiohttp 3.13.3 — PYSEC-2026-2102
transitive, CVSS 9.1, fixed in 3.13.4
https://osv.dev/vulnerability/PYSEC-2026-2102 - uv.lockauthlib 1.6.3 — PYSEC-2026-287
transitive, CVSS 9.1, fixed in 1.6.9
https://osv.dev/vulnerability/PYSEC-2026-287 - uv.lockchromadb 1.4.0 — PYSEC-2026-3813
direct, CVSS 8.8
https://osv.dev/vulnerability/PYSEC-2026-3813 - uv.lockchromadb 1.4.0 — PYSEC-2026-3815
direct, CVSS 8.8
https://osv.dev/vulnerability/PYSEC-2026-3815 - uv.lockfastmcp 2.12.3 — PYSEC-2026-2476
direct, CVSS 8.2, fixed in 3.2.0
https://osv.dev/vulnerability/PYSEC-2026-2476 - uv.lockpyjwt 2.10.1 — PYSEC-2026-4183
direct, CVSS 8.2, fixed in 2.15.0
https://osv.dev/vulnerability/PYSEC-2026-4183 - uv.lockpyjwt 2.10.1 — PYSEC-2026-120
direct, CVSS 7.5, fixed in 2.12.0
https://osv.dev/vulnerability/PYSEC-2026-120 - uv.lockfastmcp 2.12.3 — PYSEC-2026-2474
direct, CVSS 7.4, fixed in 2.14.2
https://osv.dev/vulnerability/PYSEC-2026-2474 - uv.lockpyjwt 2.10.1 — PYSEC-2026-179
direct, CVSS 7.4, fixed in 2.13.0
https://osv.dev/vulnerability/PYSEC-2026-179 - uv.lockpyjwt 2.10.1 — PYSEC-2026-4144
direct, CVSS 7.4, fixed in 2.14.0
https://osv.dev/vulnerability/PYSEC-2026-4144 - uv.lockpyjwt 2.10.1 — PYSEC-2026-4149
direct, CVSS 7.4, fixed in 2.14.0
https://osv.dev/vulnerability/PYSEC-2026-4149 - uv.lockfastmcp 2.12.3 — GHSA-c2jp-c369-7pvx
direct, CVSS 7.3, fixed in 2.13.0
https://osv.dev/vulnerability/GHSA-c2jp-c369-7pvx - uv.lockpyjwt 2.10.1 — PYSEC-2025-183
direct, CVSS 7.0
https://osv.dev/vulnerability/PYSEC-2025-183 - uv.lockurllib3 2.5.0 — PYSEC-2026-1994
transitive, CVSS 8.9, fixed in 2.6.0
https://osv.dev/vulnerability/PYSEC-2026-1994 - uv.lockurllib3 2.5.0 — PYSEC-2026-1996
transitive, CVSS 8.9, fixed in 2.6.3
https://osv.dev/vulnerability/PYSEC-2026-1996 - uv.lockurllib3 2.5.0 — PYSEC-2026-1998
transitive, CVSS 8.9, fixed in 2.6.0
https://osv.dev/vulnerability/PYSEC-2026-1998 - uv.lockurllib3 2.5.0 — PYSEC-2026-4177
transitive, CVSS 8.9, fixed in 2.8.0
https://osv.dev/vulnerability/PYSEC-2026-4177 - uv.lockfsspec 2025.9.0 — PYSEC-2026-4217
transitive, CVSS 8.8, fixed in 2026.6.0
https://osv.dev/vulnerability/PYSEC-2026-4217 - uv.lockcryptography 45.0.7 — PYSEC-2026-3553
transitive, CVSS 8.7, fixed in 49.0.0
https://osv.dev/vulnerability/PYSEC-2026-3553 - uv.lockpillow 12.1.0 — PYSEC-2026-2250
transitive, CVSS 8.7, fixed in 12.2.0
https://osv.dev/vulnerability/PYSEC-2026-2250 - uv.lockpillow 12.1.0 — PYSEC-2026-3496
transitive, CVSS 8.7, fixed in 12.3.0
https://osv.dev/vulnerability/PYSEC-2026-3496 - uv.lockpillow 12.1.0 — PYSEC-2026-2249
transitive, CVSS 8.6, fixed in 12.1.1
https://osv.dev/vulnerability/PYSEC-2026-2249 - uv.lockpillow 12.1.0 — PYSEC-2026-2252
transitive, CVSS 8.6, fixed in 12.2.0
https://osv.dev/vulnerability/PYSEC-2026-2252 - uv.lockpython-multipart 0.0.20 — PYSEC-2026-1852
transitive, CVSS 8.6, fixed in 0.0.22
https://osv.dev/vulnerability/PYSEC-2026-1852 - uv.lockauthlib 1.6.3 — PYSEC-2026-2116
transitive, CVSS 8.3, fixed in 1.6.9
https://osv.dev/vulnerability/PYSEC-2026-2116 - uv.lockpillow 12.1.0 — PYSEC-2026-3493
transitive, CVSS 8.3, fixed in 12.3.0
https://osv.dev/vulnerability/PYSEC-2026-3493 - uv.lockauthlib 1.6.3 — PYSEC-2026-2117
transitive, CVSS 8.2, fixed in 1.6.9
https://osv.dev/vulnerability/PYSEC-2026-2117 - uv.lockcryptography 45.0.7 — PYSEC-2026-2141
transitive, CVSS 8.2, fixed in 46.0.5
https://osv.dev/vulnerability/PYSEC-2026-2141 - uv.lockcryptography 45.0.7 — PYSEC-2026-3552
transitive, CVSS 8.2, fixed in 50.0.0
https://osv.dev/vulnerability/PYSEC-2026-3552 - uv.locklangchain-core 1.2.6 — PYSEC-2026-2564
transitive, CVSS 8.2, fixed in 1.3.3
https://osv.dev/vulnerability/PYSEC-2026-2564 - uv.lockpillow 12.1.0 — PYSEC-2026-3454
transitive, CVSS 8.2, fixed in 12.3.0
https://osv.dev/vulnerability/PYSEC-2026-3454 - uv.lockprotobuf 6.32.1 — PYSEC-2026-1805
transitive, CVSS 8.2, fixed in 6.33.5
https://osv.dev/vulnerability/PYSEC-2026-1805 - uv.lockurllib3 2.5.0 — PYSEC-2026-141
transitive, CVSS 8.2, fixed in 2.7.0
https://osv.dev/vulnerability/PYSEC-2026-141 - uv.lockvirtualenv 20.34.0 — PYSEC-2026-4013
transitive, CVSS 7.8, fixed in 21.7.13
https://osv.dev/vulnerability/PYSEC-2026-4013 - uv.locklangsmith 0.6.0 — GHSA-f4xh-w4cj-qxq8
transitive, CVSS 7.7, fixed in 0.8.18
https://osv.dev/vulnerability/GHSA-f4xh-w4cj-qxq8 - uv.lockorjson 3.11.3 — PYSEC-2026-107
transitive, CVSS 7.7, fixed in 3.11.5
https://osv.dev/vulnerability/PYSEC-2026-107 - uv.lockvirtualenv 20.34.0 — PYSEC-2026-4011
transitive, CVSS 7.7, fixed in 21.7.12
https://osv.dev/vulnerability/PYSEC-2026-4011 - uv.lockmcp 1.14.0 — PYSEC-2026-1617
transitive, CVSS 7.6, fixed in 1.23.0
https://osv.dev/vulnerability/PYSEC-2026-1617 - uv.lockmcp 1.14.0 — PYSEC-2026-3483
transitive, CVSS 7.6, fixed in 1.28.1
https://osv.dev/vulnerability/PYSEC-2026-3483 - uv.lockurllib3 2.5.0 — PYSEC-2026-4175
transitive, CVSS 7.6, fixed in 2.8.0
https://osv.dev/vulnerability/PYSEC-2026-4175 - uv.lockaiohttp 3.13.3 — PYSEC-2026-2095
transitive, CVSS 7.5, fixed in 3.13.4
https://osv.dev/vulnerability/PYSEC-2026-2095 - uv.lockaiohttp 3.13.3 — PYSEC-2026-2097
transitive, CVSS 7.5, fixed in 3.13.4
https://osv.dev/vulnerability/PYSEC-2026-2097 - uv.lockaiohttp 3.13.3 — PYSEC-2026-2098
transitive, CVSS 7.5, fixed in 3.13.4
https://osv.dev/vulnerability/PYSEC-2026-2098 - uv.lockaiohttp 3.13.3 — PYSEC-2026-2105
transitive, CVSS 7.5, fixed in 3.14.0
https://osv.dev/vulnerability/PYSEC-2026-2105
Maintenance
- recency
last commit 232 day(s) before 2026-10-16
- issue_responsiveness
this repository has no issues `03` §5's window covers. An unanswered issue scores 0 under §5, but a repository with no issues filed has not failed to answer one.
- release_cadence
this repository publishes neither releases nor version tags
- bus_factor
sole maintainer, and no commit in over 90 days
- repository_signals
`03` §5 scores this by quartile WITHIN the server's category, which needs a distribution across every scanned server and so cannot be computed while scanning one. It is a post-pass over the crawl and that pass does not exist yet.
Transparency
- license
LICENSE present with no SPDX-License-Identifier tag; identified as 'MIT' from its text
- readme_quality
README.md: installation instructions (+25), configuration documented (+25), exposed tools or resources enumerated (+30), states what the server does in the first 200 words (+20)
- declared_scopes
neither the README nor the MCP manifest documents what the server accesses or what side effects it has
- changelog
no CHANGELOG in the fetched source. `03` §7's partial credit for tagged releases carrying release notes is not applied here — that needs the forge API, which this check does not call
- security_contact
no SECURITY.md and no disclosure contact in the README, so a finder has no route to report a vulnerability privately
Contest a finding
Every number here comes from a rule reading published source, and rules get things wrong. If something on this page is incorrect — or correct but mitigated by a check the rule cannot see — open an issue and we answer it in writing. A finding we got wrong is removed and the rule is fixed; one that stands is answered on the record.
Anyone can file: the maintainer, a researcher who disagrees with the classification, or a user who tested the server and could not reproduce it. Name this server and the rule or advisory ID shown beside the finding above. We aim to reply within five business days and to resolve within ten.