sieve-map
sieve-mcp
MCP server for Sieve — a macOS app that scans local AI coding tool history for secrets leaked into prompts.
sieve-mcp is bundled inside the Sieve Mac app. No separate install. No network calls. All operations run on-device.
Install
Download Sieve for Mac from the App Store.
Open Sieve → Settings → MCP → toggle Enable MCP server on.
Related MCP server: VaultBridge
Configure Claude Code
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"sieve": {
"command": "/Applications/Sieve.app/Contents/MacOS/sieve-mcp"
}
}
}Restart Claude Code and run /mcp to verify sieve appears.
Configure Claude Desktop
Add the same block to ~/Library/Application Support/Claude/claude_desktop_config.json and restart.
Tools
All tools are safe by design — no tool ever returns a plaintext secret value.
sieve_health_status
Returns service health and finding counts.
Response:
{
"status": "ok",
"findings_count": 12,
"scan_jobs": 3
}sieve_self_test
Verifies scanner rules and transcript source coverage are healthy.
Response:
{
"fingerprintHealthy": true,
"ruleCount": "<n>",
"transcriptSourceCount": "<n>",
"healthy": true,
"issues": []
}sieve_findings_list
Lists findings from the most recent scan.
Input: { "limit": 50 } (optional)
Response:
[
{
"findingId": "abc123",
"ruleId": "github-pat",
"severity": "critical",
"sourcePath": "~/.claude/projects/myapp/transcript.jsonl",
"sourceType": "ClaudeCode",
"secretFingerprint": "<fingerprint>",
"previewRedacted": "ghp_[REDACTED]",
"providerExposureAssumed": true,
"rotationStatus": "pending",
"redactionPlaceholder": "sieve://myapp/github-pat"
}
]providerExposureAssumed: true — secret found in an AI tool transcript. Assume the provider (Anthropic, OpenAI, etc.) can associate the prompt with your account identity.
sieve_issue_list
Lists scanner health issues — unreadable sources, permission errors, parse failures.
Response:
[
{
"issueId": "iss1",
"code": "SCAN_TARGET_UNREADABLE",
"severity": "warning",
"component": "ClaudeDesktop",
"message": "Could not read chat DB — Full Disk Access may be required",
"suggestion": "Grant Full Disk Access in System Settings → Privacy & Security"
}
]sieve_scan_history
Returns past scan job summaries.
Input: { "limit": 10 } (optional)
Response:
[
{
"jobId": "job1",
"startedAt": "2026-05-22T10:00:00Z",
"finishedAt": "2026-05-22T10:00:12Z",
"sourcesCount": 4,
"findingsCount": 3,
"issuesCount": 0
}
]sieve_scan_status
Returns status of the current or most recent scan.
Response:
{ "status": "idle" }Values: "idle" · "running" · "completed" · "failed: <reason>"
sieve_check_text
Checks whether text contains secrets. Returns boolean only — never echoes input or detected values.
Input: { "text": "<content to check>" }
Response:
{ "has_secrets": true }Use this to gate operations before sending content to an external API.
sieve_redact_text
Redacts secrets from text, replacing values with sieve:// placeholders.
Input: { "text": "<content>", "project_key": "myapp" }
Response:
{
"redacted": "export STRIPE_KEY=sieve://myapp/stripe-secret-key",
"hadSecrets": true,
"placeholders": [
{
"ruleId": "stripe-secret-key",
"placeholder": "sieve://myapp/stripe-secret-key",
"fingerprint": "<fingerprint>"
}
]
}Raw values are never included in the response.
sieve_vault_run
Executes a command with macOS Keychain-resolved secrets injected as env vars. Secrets never transit the MCP channel.
Input: { "command": "npm run deploy", "fingerprints": ["<fingerprint>"] }
Response:
{
"exit_code": 0,
"succeeded": true,
"timed_out": false,
"stdout_line_count": 14,
"stderr_line_count": 0
}stdout/stderr content is never returned — only line counts.
Supported AI tool sources
Tool | Source |
Claude Code | JSONL project transcripts |
Claude Desktop | SQLite chat database |
Cursor | SQLite state database |
VS Code / Copilot Chat | JSON history files |
Windsurf | JSON history files |
Cline | JSON session files |
Codex CLI | JSONL/JSON session files |
Gemini CLI | JSON history files |
| Selected project roots |
Custom sources | User-added folders |
Sieve correlates findings across source types — if the same secret appears in both a transcript and a .env file, it is flagged as a multi-source exposure.
Security posture
Local-only. stdio transport, no network calls, no cloud sync.
No plaintext secrets in responses. Hard invariant in the dispatcher — not configurable.
Fingerprint-only persistence. Findings DB stores HMAC fingerprints + redacted previews only.
Keychain-backed vault. Secret values live in macOS Keychain with biometric access control.
Explicit opt-in. MCP is off by default; requires toggle in Sieve Settings.
Unreadable sources reported.
SCAN_TARGET_UNREADABLEsurfaces insieve_issue_list— no silent skipping.
Transport
stdio. The sieve-mcp binary reads JSON-RPC 2.0 from stdin and writes to stdout. MCP clients (Claude Code, Claude Desktop) manage the process lifecycle.
Platform
macOS only. Requires Sieve app installed from the Mac App Store.
Links
Mac App Store: https://apps.apple.com/app/sieve-ai-secret-scanner/id6747506504
Product site: https://sieve.app
Available Tools
9 toolssieve_check_textA
Checks whether text contains secrets. Returns boolean only — never echoes input or detected values.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to check for secrets |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key behavioral trait (never echoes input or detected values), which is critical for privacy-sensitive tools. However, it does not mention other aspects like performance, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys purpose and key behavior without any redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is nearly complete. It covers purpose, return type, and a privacy promise. It could be slightly improved by hinting at what constitutes a 'secret', but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema description for 'text' already states 'Text to check for secrets'. The description adds minimal extra parameter meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks text for secrets, and distinguishes it from sibling tools like sieve_redact_text (which redacts) and sieve_findings_list (which lists findings). The verb 'checks' and resource 'text' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating it returns only a boolean and never echoes input, suggesting it is for binary secret detection rather than detailed analysis. However, it does not explicitly state when to use or avoid this tool versus alternatives like sieve_findings_list or sieve_redact_text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_findings_listA
Lists findings from the most recent scan. Previews are redacted — no plaintext secret values.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max findings to return (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially fills in behavioral context by noting that previews are redacted. However, it does not disclose other important behaviors such as whether the tool requires authentication or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core action, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description adequately covers purpose and redaction behavior. However, it lacks details on what fields are returned or how the 'most recent scan' is determined, which may require the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'limit' is fully described in the schema (100% coverage), so the description adds no extra meaning beyond what is already available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lists' and the resource 'findings from the most recent scan', differentiating it from siblings that handle other aspects like scan status or history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like sieve_scan_history or sieve_scan_status. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_health_statusA
Returns Sieve service health and finding counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that the tool returns health and finding counts, which is minimal. It does not specify whether it is read-only, requires authentication, or has any side effects, leaving significant gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core function without any superfluous details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description explains it returns health and finding counts, which is fairly complete for a health check. However, it could be more specific about the format or structure of the counts. Sibling tools are diverse, and no cross-references are needed for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage (empty). According to guidelines, a baseline of 4 is appropriate when no parameters exist, and the description does not need to add any param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns Sieve service health and finding counts, specifying the verb 'returns' and the resource 'Sieve service health and finding counts'. It stands out from siblings like sieve_check_text or sieve_findings_list which handle different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. However, as a health check tool, its purpose is implied: to check service status. No alternatives or exclusions are mentioned, which is acceptable for a straightforward query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_issue_listA
Lists scanner health issues: unreadable sources, permission errors, parse failures.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read-only operation (listing), which is accurate, but doesn't disclose any caveats like state changes, auth requirements, or performance characteristics. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with specific examples. Every word adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and simple operation (list), the description is mostly complete. It defines what it lists and gives examples. Missing details on output format or ordering, but not critical for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist and schema coverage is 100%, so the description doesn't need to compensate. Baseline 4 is appropriate; it doesn't add unnecessary info but also doesn't explain output format, which could be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists scanner health issues and provides concrete examples (unreadable sources, permission errors, parse failures), distinguishing it from siblings like sieve_findings_list or sieve_health_status. The verb 'lists' combined with specific resource 'scanner health issues' gives exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like sieve_health_status or sieve_findings_list. Missing context on prerequisites, typical use cases, or exclusions. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_redact_textB
Redacts secrets from text, replacing values with sieve:// placeholders. Raw values are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to redact | |
| project_key | No | Namespace for placeholders (e.g. 'myapp') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'Raw values are never returned' but lacks details on side effects, permissions, rate limits, or error handling. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. Every sentence adds value and the description is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 params and no output schema, description covers input and basic behavior. However, it lacks explicit return format description, which would be helpful given no output schema. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. Description adds context by explaining the placeholder replacement and the never-returned raw values, but does not significantly extend beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Redacts secrets from text') and resource, with specific behavior ('replacing values with sieve:// placeholders', 'Raw values are never returned'). It distinguishes from sibling tools like sieve_check_text and sieve_findings_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool. No mention of alternatives or prerequisites. The description is purely functional with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_scan_historyC
Returns past scan job summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max jobs to return (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not disclose whether the operation is read-only, or what side effects might occur. The term 'returns' implies reading, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, which is concise and front-loaded. It earns its place by stating the tool's purpose, though it could include more useful details without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and one optional parameter, the description should hint at the return format or contents of 'scan job summaries'. It lacks this context, making it incomplete for an agent to fully understand the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the only parameter 'limit' is described in the schema). The tool description adds no extra meaning beyond the schema, but baseline 3 is appropriate as the schema already covers the parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Returns past scan job summaries' clearly states the verb and resource. It is distinguishable from siblings like sieve_scan_status and sieve_findings_list by the 'history' aspect, though it does not explicitly mention differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like sieve_scan_status or sieve_findings_list. The description only states what it does without any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_scan_statusA
Returns status of the current or most recent scan: idle, running, completed, or failed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the tool returns a status string with enumerated values, implying a read operation. However, it does not explain behavior such as polling, prerequisites (e.g., must a scan have been started?), or whether it can be called independently. The disclosure is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that lists the possible return values. It is highly concise with no wasted words, adequate for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description sufficiently covers what it returns and the possible values. It does not elaborate on the meaning of 'current or most recent scan,' but that is acceptable for a simple status check. Almost complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description does not need to add parameter information. The baseline for no parameters is 4, and the description does not address parameters because there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the status of the current or most recent scan, listing the possible values (idle, running, completed, failed). This distinguishes it from siblings like sieve_scan_history or sieve_health_status, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as sieve_scan_history for detailed history or sieve_health_status for system health. The description does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_self_testB
Verifies scanner rules and transcript source coverage are healthy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states the tool verifies health but does not indicate if it is read-only, what the return value or side effects are, or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and no output schema. The description explains the action but lacks details on what the result indicates (e.g., what 'healthy' means) or any implicit effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters with 100% coverage, so baseline is 4. The description adds meaning by explaining the tool's purpose beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Verifies' and specifies the resource: 'scanner rules and transcript source coverage'. It clearly states the tool's function, though it does not explicitly differentiate from the sibling 'sieve_health_status', which might have a similar scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like sieve_health_status or other siblings. There is no mention of prerequisites, exclusions, or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sieve_vault_runA
Executes a command with macOS Keychain-resolved secrets injected as env vars. Returns exit code and line counts only — stdout/stderr content is never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Shell command to execute | |
| fingerprints | No | Fingerprints of vault secrets to inject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that secrets are injected as env vars and that stdout/stderr are not returned. However, it does not mention potential side effects, authentication requirements, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words. Every phrase adds meaning: 'with macOS Keychain-resolved secrets injected as env vars' and 'stdout/stderr content is never returned'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input (command and fingerprints) and output (exit code and line counts). It lacks error scenarios or execution environment details, but for a 2-param tool with no output schema, this is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that fingerprints are used to inject secrets from Keychain, clarifying the purpose beyond the parameter descriptions. It does not add syntax details but reinforces the role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes a command with secrets injected from macOS Keychain, and specifies what is returned (exit code and line counts) and what is not (stdout/stderr). This distinguishes it from siblings like sieve_check_text or sieve_redact_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for running commands with secure secrets, but does not provide explicit guidance on when to use this tool vs alternatives, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
sieve_check_text - First observed
sieve_findings_list - First observed
sieve_health_status - First observed
sieve_issue_list - First observed
sieve_redact_text - First observed
sieve_scan_history - First observed
sieve_scan_status - First observed
sieve_self_test - First observed
sieve_vault_run
TDQS
Scored across 9 tools
Each tool targets a distinct function: check vs redact text, list findings, health, issues, scan history/status, self-test, and vault run. No two tools have overlapping purposes, ensuring clear differentiation for an agent.
All tools share the 'sieve_' prefix and use snake_case, which is good. However, the part-of-speech order varies: some are verb_noun (check_text, redact_text), others are noun_noun (findings_list, health_status). This minor inconsistency prevents a perfect score.
With 9 tools, the server covers its core domain (secrets scanning and vault management) without bloat. Each tool addresses a specific need, and the count feels well-scoped for the functionality offered.
The tool set covers essential operations: checking, redacting, listing findings, health, issues, scan history/status, self-test, and vault execution. A minor gap is the absence of a tool to trigger a scan or manage vault entries, but the core workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLocal-first CLI and MCP server for redacting sensitive text before sharing logs, configs, and errors with AI tools.MIT
- AlicenseNot gradedqualityDmaintenanceSecret management MCP server for AI coding agents that prevents secrets from entering the LLM context window by returning metadata only and using side-channel injection. Integrates with Bitwarden and offers hooks for auto-capture and leak prevention.1MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that exposes data from native macOS apps (Mail, Notes, Calendar, Reminders, Contacts, Messages, Spotlight) to AI agents over stdio, currently in early development with no domain tools wired yet.144MIT
- AlicenseNot gradedqualityCmaintenanceLocal CLI and MCP server that redacts secrets from logs, files, and diffs before sending them to AI agents, with stable placeholders and token-budgeted truncation.MIT