kit-one-tool-mcpSAFE
One-tool MCP server sample in TypeScript-friendly JS: described schema, unhappy paths handled, 15 tests that run with no API key. npx -y @sdvsignal/kit-one-tool-mcp. MIT.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://glama.ai/mcp/servers/sdvsignal/kit-one-tool-mcp) [](https://buy.stripe.com/aFaeVfcsf0fc1v42sVf3a08?clientreferenceid=from-gh-badge-mcp)
Most MCP examples show you the happy path and then fail on somebody's laptop at 401. This one is the opposite: one tool, a described schema, and 15 tests that are mostly the unhappy paths — missing key, 401, 403, 429, 503, DNS failure, non-JSON body, empty result.
Clone it, rename THING, and you have the shape of a working MCP server. It is a sample of what an MCP Basic build from Kit looks like when it is handed over.
If you came here looking for a one tool MCP sample, an MCP server example in TypeScript, or a way to test an MCP tool with no API key and no network, this is that.
It is deliberately one tool. A second tool, or a Cloudflare Worker, is a Build Packet, not a bigger version of this.
Want your repo set up for Claude Code first?
This repo is MIT and complete — take it and go. If you want a CLAUDE.md, a tool allowlist and one skill wired for your repo:
[Buy Setup Lite — $29](https://buy.stripe.com/3cI14pcsf6DA8Xw4B3f3a0a?client_reference_id=from-gh-one-tool-mcp) · ~24h, handed back as a PR.
Details: kit.sdvsignal.com/#setup-lite · the same shape as this repo built against your API is MCP Basic $199.
60-second start — no API
d8a02ef25adcOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add kit-one-tool-mcp --env THING_API_KEY=${THING_API_KEY} -- npx -y @sdvsignal/[email protected]Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (2)
@modelcontextprotocol/sdk, zod
Gates applied: no_behavioural_pass.
d8a02ef25adcfull audit observations/trust-audit/mcp-server/sdvsignal__kit-one-tool-mcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | d8a02ef25adc | SAFE | B | 89 | first audit |
Questions
What is the kit-one-tool-mcp MCP server?
One-tool MCP server sample in TypeScript-friendly JS: described schema, unhappy paths handled, 15 tests that run with no API key. npx -y @sdvsignal/kit-one-tool-mcp. MIT.
Is kit-one-tool-mcp safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does kit-one-tool-mcp need?
It reads THING_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does kit-one-tool-mcp run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @sdvsignal/kit-one-tool-mcp at 0.1.0.
How current is this page?
The grade is for one exact copy of the source (d8a02ef25adc), read on 2026-10-12. The repository is watched and re-audited when it changes.