HashBuilds Secure Prompts
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@HashBuilds Secure Promptsregister this prompt as a secure prompt: You are a helpful assistant that explains code clearly"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
HashBuilds Secure Prompts MCP Server
An MCP (Model Context Protocol) server that allows AI assistants like Claude Code to register and verify prompts with HashBuilds Secure Prompts.
What is MCP?
MCP (Model Context Protocol) is a standard that lets AI assistants call external tools. When you configure this MCP server with Claude Code, you can say things like:
"Register this prompt as a secure prompt"
"Verify prompt ID xyz123"
"Generate embed code for my secure prompt"
Related MCP server: prompt-injection-mcp
Installation
1. Install dependencies and build
cd mcp-server
pnpm install
pnpm build2. Configure Claude Code
Add this MCP server to your Claude Code settings. There are two ways:
Option A: Project-level config (recommended)
Create/edit .claude/config.json in your project:
{
"mcpServers": {
"hashbuilds-secure-prompts": {
"command": "node",
"args": ["/path/to/hashbuilds/mcp-server/dist/index.js"],
"env": {
"HASHBUILDS_API_URL": "https://hashbuilds.com/api/secure-prompts"
}
}
}
}Option B: Global config
Edit ~/.config/claude/config.json:
{
"mcpServers": {
"hashbuilds-secure-prompts": {
"command": "node",
"args": ["/Users/johnhashem/workspace/hashbuilds/mcp-server/dist/index.js"]
}
}
}3. Restart Claude Code
After adding the config, restart Claude Code for it to pick up the new MCP server.
Available Tools
register_secure_prompt
Register a prompt for security verification. This scans the prompt for:
Hidden instruction injection
Data exfiltration patterns
Invisible characters
Jailbreak attempts
URLs/backlinks
Parameters:
promptText(required): The prompt text to registerownerEmail(optional): Email for notificationssiteDomain(optional): Domain where prompt will be displayed
Example usage in Claude Code:
"Register this prompt as a secure prompt: You are a helpful assistant..."verify_secure_prompt
Check the verification status of an existing prompt.
Parameters:
promptId(required): The ID of the prompt to verify
Example:
"Verify secure prompt cmj23jn05000096ju2cvl1b3h"get_embed_code
Generate HTML and React embed code for displaying the secure prompt badge.
Parameters:
promptId(required): The prompt ID
Example:
"Give me the embed code for prompt cmj23jn05000096ju2cvl1b3h"Environment Variables
HASHBUILDS_API_URL: Override the API base URL (default:https://hashbuilds.com/api/secure-prompts)
For local development:
{
"env": {
"HASHBUILDS_API_URL": "http://localhost:3001/api/secure-prompts"
}
}How It Works
Developer asks Claude Code to register a prompt
Claude Code calls the
register_secure_prompttool via MCPMCP server sends the prompt to HashBuilds API
HashBuilds scans the prompt for security issues
Results returned to Claude Code with embed code
Developer adds the embed code to their website
Example Workflow
You: I have this prompt on my website and want to make it a secure prompt:
"You are a helpful coding assistant. Explain code clearly and provide examples."
Claude: I'll register that as a secure prompt for you.
[Calls register_secure_prompt tool]
Done! Your prompt has been registered with ID: cmj123xyz
Risk Level: safe
Here's the embed code to add to your website:
<div data-secure-prompt-id="cmj123xyz">
<pre data-secure-prompt-content="cmj123xyz">Your prompt here...</pre>
</div>
<script src="https://hashbuilds.com/sp.js" async></script>Troubleshooting
MCP server not connecting
Check that the path to
dist/index.jsis correctEnsure
pnpm buildcompleted without errorsRestart Claude Code after config changes
API errors
Check your internet connection
Verify HashBuilds API is reachable
For local dev, ensure the local server is running
Development
# Watch mode for development
pnpm dev
# Build for production
pnpm build
# Run directly
node dist/index.jsAvailable Tools
4 toolsaudit_promptsA
Analyze a list of prompts found in a codebase and categorize them as user-facing (needs badge) or internal (audit only). This tool helps users who already have prompts in their codebase understand which ones should be registered with secure badges vs which are internal-only.
HOW TO USE:
First, search the codebase for prompts using patterns like:
Files matching: public/PROMPT_*.txt, **/prompt*.ts
Code patterns: 'You are a', 'systemPrompt', 'SYSTEM_PROMPT', role: 'system'
Extract the prompt text and file location for each found prompt
Call this tool with the prompts array
Present the audit results to the user, showing:
User-facing prompts that should get security badges
Internal prompts that are safe but should be audited
Prompts needing manual review
Ask the user which prompts they want to register for badges
Use register_secure_prompt for each selected prompt
| Name | Required | Description | Default |
|---|---|---|---|
| prompts | Yes | Array of prompts found in the codebase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by explaining the tool's behavior: it categorizes prompts, presents audit results with three categories (user-facing, internal, needing manual review), and guides the user through a workflow. It doesn't mention rate limits or error handling, but covers core behavioral aspects adequately.
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 appropriately sized and front-loaded with the purpose, followed by a detailed 'HOW TO USE' section. While slightly verbose, every sentence adds value by guiding the user through the workflow, making it efficient for its instructional 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 tool with no annotations and no output schema, the description provides comprehensive context: it explains the tool's role in a larger workflow, how to prepare inputs, what the tool does, and what to do with results. The main gap is the lack of output format details, but the workflow guidance compensates well.
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%, so the schema already documents the 'prompts' parameter and its nested properties. The description adds context by explaining what the prompts array should contain ('prompts found in the codebase') and how to prepare it (via search patterns), but doesn't provide additional semantic details beyond the schema's thorough documentation.
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's purpose: 'Analyze a list of prompts found in a codebase and categorize them as user-facing (needs badge) or internal (audit only).' It specifies the verb ('analyze'), resource ('prompts'), and distinguishes from siblings by focusing on categorization rather than registration or verification.
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 'HOW TO USE' section provides explicit step-by-step guidance, including when to use this tool (after searching the codebase for prompts) and alternatives (e.g., 'Use register_secure_prompt for each selected prompt'). It clearly differentiates this audit tool from the registration sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_embed_codeA
Generate HTML and React embed code for displaying a secure prompt badge. Use this after registering a prompt to get the code to add to your website.
| Name | Required | Description | Default |
|---|---|---|---|
| promptId | Yes | The ID of the secure prompt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'generate[s]' code but doesn't describe what the output looks like (HTML vs React format details), whether there are rate limits, authentication requirements, or potential side effects. For a code generation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 sentences with zero waste. The first sentence states the core purpose, and the second provides usage guidance. Every word serves a clear function, and the information is front-loaded appropriately.
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 moderate complexity (code generation with one parameter) and lack of both annotations and output schema, the description is minimally adequate. It covers the basic purpose and usage sequence but doesn't address output format, error conditions, or integration details that would be helpful for a developer implementing this. The absence of output schema means the description should ideally explain what gets returned.
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%, so the schema already documents the single 'promptId' parameter. The description adds marginal value by implying the prompt must be 'registered' first, which provides context for the parameter's purpose. However, it doesn't provide additional syntax, format, or validation details beyond what the schema provides, meeting the baseline for high schema coverage.
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's purpose: 'Generate HTML and React embed code for displaying a secure prompt badge.' It specifies both the action (generate code) and the resource (embed code for secure prompt badge). However, it doesn't explicitly differentiate from sibling tools like audit_prompts or verify_secure_prompt, which appear to 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?
The description provides clear context for when to use this tool: 'Use this after registering a prompt to get the code to add to your website.' This establishes a sequence (after registration) and a target use case (website integration). While it doesn't explicitly mention when NOT to use it or name alternatives, the guidance is specific enough for practical application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_secure_promptA
Register a prompt with HashBuilds Secure Prompts for security verification and get embed options. This uses AI to scan the prompt for injection attacks, hidden instructions, data exfiltration, jailbreak attempts, and other security issues. Returns multiple display options (full badge, compact link, icon button) with implementation guidance. After registering, ASK THE USER which display option they prefer before implementing. The response includes an implementationGuide field with detailed instructions for styling and placement.
| Name | Required | Description | Default |
|---|---|---|---|
| promptText | Yes | The full text of the prompt to register and scan | |
| siteDomain | Yes | REQUIRED: The domain where this prompt will be displayed (e.g., 'example.com'). This enables domain verification - the badge will warn users if displayed on unauthorized domains. Look for the domain in: package.json homepage, vercel.json, .env NEXT_PUBLIC_URL, or ask the user. | |
| ownerEmail | No | Optional email of the prompt owner for notifications |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: AI scanning for specific security threats (injection attacks, hidden instructions, etc.), domain verification functionality, and the return of multiple display options with implementation guidance. It also mentions the need for user interaction after registration. The only gap is lack of information about rate limits, 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?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. Each subsequent sentence adds valuable information about scanning capabilities, return values, and user interaction requirements. There's minimal redundancy, though the final sentence about implementationGuide could be slightly more concise.
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 complexity (security scanning with multiple outputs and user interaction requirements) and the absence of both annotations and an output schema, the description does a decent job but has gaps. It explains what the tool does and what it returns at a high level, but doesn't detail the structure of the response beyond mentioning 'implementationGuide field' or potential error cases. For a tool with no output schema, more detail about return values would be helpful.
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%, so the schema already documents all three parameters thoroughly. The description doesn't add any additional meaning about the parameters beyond what's in the schema descriptions. It mentions domain verification context but doesn't elaborate on parameter usage beyond the schema's existing documentation.
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 specific action ('register a prompt'), the resource ('HashBuilds Secure Prompts'), and the purpose ('for security verification and get embed options'). It distinguishes from siblings by focusing on registration and scanning rather than auditing existing prompts, retrieving embed code, or verification alone.
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 provides clear context for when to use this tool (to register and scan a prompt for security issues and get embed options). It mentions a specific follow-up action ('ASK THE USER which display option they prefer before implementing'), which implies usage guidance. However, it doesn't explicitly state when NOT to use it or name alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_secure_promptB
Verify an existing secure prompt by its ID. Returns the security scan results, risk level, and verification status.
| Name | Required | Description | Default |
|---|---|---|---|
| promptId | Yes | The ID of the secure prompt to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the tool's read-only nature (verification) and output details (security scan results, risk level, status), which is helpful. However, it omits behavioral traits like error handling (e.g., invalid ID), performance (e.g., latency), or side effects (e.g., logging).
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 concise (two sentences) and front-loaded with the core purpose. Every sentence adds value: the first defines the action, and the second specifies outputs. Minor improvement possible by integrating output details more seamlessly.
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 annotations, no output schema, and a simple input schema, the description is adequate but incomplete. It covers the purpose and outputs but lacks details on error cases, response format, or integration with siblings. For a verification tool, more context on security implications would be beneficial.
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%, with the parameter 'promptId' fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high coverage.
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 ('verify') and resource ('existing secure prompt by its ID'), with specific outputs mentioned. It distinguishes from siblings like 'register_secure_prompt' (create) and 'audit_prompts' (likely batch analysis), but doesn't explicitly contrast with 'get_embed_code'.
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?
Usage is implied by the description: use this tool when you have a prompt ID and need verification results. However, it lacks explicit guidance on when to choose this over alternatives like 'audit_prompts' or prerequisites (e.g., the prompt must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: audit_prompts analyzes existing prompts, register_secure_prompt registers new ones, verify_secure_prompt checks registered prompts, and get_embed_code generates display code. The descriptions clearly differentiate their roles in the workflow.
All tool names follow a consistent verb_noun pattern with snake_case: audit_prompts, get_embed_code, register_secure_prompt, verify_secure_prompt. The naming is predictable and aligns well with their functions.
With 4 tools, this server is well-scoped for its purpose of securing prompts. Each tool earns its place by covering key aspects: auditing, registration, verification, and embedding, without being too sparse or bloated.
The tool set provides complete coverage for the secure prompt lifecycle: audit existing prompts, register new ones, verify registered prompts, and generate embed code. There are no obvious gaps, and the tools guide users through a logical workflow from discovery to implementation.
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
Prompt injection detection API for AI agents. Scan untrusted text before passing it to an LLM.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Deterministic prompt-injection detector; signed, offline-verifiable verdicts. Not an LLM.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Related MCP Servers
- AlicenseAqualityCmaintenanceSecurity co-pilot for AI agents. Scans for vulnerabilities like prompt injection, infinite loops, and token bombing in AI Agents, audits MCP servers, verifies AGENTS.md governance, and generates EU AI Act compliance reports.10863Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables security researchers to evaluate AI system defenses against prompt injection attacks through a comprehensive set of test vectors and analysis tools.3
- AlicenseNot gradedqualityCmaintenanceProvides a security scanner for AI agent skills and MCP servers, detecting threats like prompt injection, identity hijacking, and memory poisoning.702MIT
- AlicenseNot gradedqualityCmaintenanceProvides local, dependency-free security scanning tools for LLM configurations, prompts, RAG sources, and more, enabling AI coding agents to detect prompt injections and other vulnerabilities without external network access.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jphyqr/secure-prompts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server