Bristlecone Logic Utilities
Bristlecone Guard
Deterministic runtime guardrails and M2M (machine-to-machine) safety primitives for autonomous AI agent pipelines.
Exposes high-speed validation, AST evaluation, schema enforcement, and web/DNS auditing tools via standard HTTP and the Anthropic Model Context Protocol (MCP).
Tools
audit_dns: Forward DNS resolution and network routing verification. Guards against Server-Side Request Forgery (SSRF).
chunk_text: Sliding-window text segmentation with configurable overlap for RAG ingestion.
eval_expression: Deterministic mathematical and boolean expression evaluation inside an isolated AST sandbox.
extract_web: Sanitized server-side text extraction from public web pages.
repair_json: Syntax repair for broken, malformed, or unclosed JSON strings produced by LLMs.
validate_schema: Strict key-level schema validation for agent input/output payloads.
Related MCP server: mcp-devtools
Public Endpoints
Base URL: https://bristleconelogic.com
MCP Transport (SSE): https://bristleconelogic.com/mcp
Agentic Discovery Catalog: https://bristleconelogic.com/.well-known/ai-catalog.json
Resource Manifest: https://bristleconelogic.com/.well-known/ai-resources.json
API Documentation: https://bristleconelogic.com/docs
Connecting to Claude Desktop / MCP Clients
Add the following to your claude_desktop_config.json:
{ "mcpServers": { "bristlecone-guard": { "url": "https://bristleconelogic.com/mcp" } } }
For authenticated or metered tenant access:
{ "mcpServers": { "bristlecone-guard": { "url": "https://bristleconelogic.com/mcp", "headers": { "Authorization": "Bearer bl_live_YOUR_API_KEY" } } } }
Autonomous M2M Settlement
Protocol: x402 (HTTP 402 Payment Required)
Network: Base L2 (eip155:8453)
Asset: USDC
Payee Contract / Treasury: 0xa17c8c3005698bc4ea6406a00387445e1d30c35f
License
Apache-2.0
Available Tools
6 toolsaudit_dnsARead-onlyIdempotent
Performs forward DNS resolution and network routing verification for a target domain. Resolves IPv4 and IPv6 addresses. Use to verify host reachability and guard autonomous agents against Server-Side Request Forgery (SSRF) before making HTTP requests. Do not use for WHOIS domain registration lookups or deep port scanning.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The fully qualified domain name (FQDN) or hostname to resolve (e.g. 'api.github.com' or 'openai.com'). Do not include http/https protocols or URL paths. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| status | Yes | |
| ip_addresses | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool as readOnly, idempotent, and non-destructive. The description adds behavioral details such as resolving IPv4 and IPv6 addresses and performing network routing verification, which are consistent with the annotations and do not contradict them, providing extra transparency beyond the metadata.
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, using three sentences to cover what the tool does, when to use it, and what not to use it for. It is well-structured with clear sections and contains no redundant or irrelevant 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?
For a simple one-parameter, read-only tool, the description is complete. It covers the tool's purpose, usage scenario, and exclusions, and relies on the output schema for return value details, so an agent has all necessary context to invoke it correctly.
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 covers the single parameter 'domain' with full description and format guidance, and the tool description reinforces its meaning by specifying what to exclude (http/https protocols, URL paths). This goes beyond the schema's baseline by adding practical context for correct parameter usage.
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 performs forward DNS resolution and network routing verification, resolves IPv4 and IPv6, and specifies its purpose as verifying host reachability and guarding against SSRF. It also explicitly distinguishes itself from WHOIS and deep port scanning, making its function unambiguous and differentiating it from the sibling tools.
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 explicit guidance on when to use the tool ('Use to verify host reachability and guard autonomous agents against SSRF before making HTTP requests') and when not to use it ('Do not use for WHOIS domain registration lookups or deep port scanning'), giving clear conditions and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chunk_textARead-onlyIdempotent
Partitions raw text documents into uniform sliding-window segments with configurable character overlap. Returns an array of formatted text chunks. Use when preparing unstructured documents for vector database embeddings and RAG retrieval pipelines. Do not use for syntactic token counting or semantic sentence segmentation.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The source document text string to segment into discrete chunks. | |
| chunk_size | No | Maximum character length of each individual chunk segment. Defaults to 500 characters. | |
| chunk_overlap | No | Number of overlapping characters shared between consecutive chunks to maintain semantic context. Defaults to 50 characters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chunks | Yes | |
| total_chunks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral detail beyond annotations: the algorithm ('uniform sliding-window segments with configurable character overlap') and the return format ('Returns an array of formatted text chunks'). This provides useful context without contradicting the annotations.
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 compact—two sentences total—with no redundant phrasing. The primary action and output are front-loaded, followed by usage guidance and exclusions. Every sentence contributes new 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 presence of an output schema (as indicated by context signals) and full parameter documentation in the input schema, the description covers purpose, usage, parameters, and return type. It leaves no critical information missing for an agent to correctly invoke the 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?
Schema description coverage is 100%, so all parameters (text, chunk_size, chunk_overlap) are already well-documented with descriptions, defaults, and constraints. The description adds no additional parameter meaning beyond what the schema provides, so it meets the baseline of 3.
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 states a specific verb ('Partitions'), a clear resource ('raw text documents'), and the output ('array of formatted text chunks'). It is clearly distinct from sibling tools like audit_dns, eval_expression, extract_web, repair_json, and validate_schema, which have no overlap with text segmentation. The purpose is 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 explicitly provides when-to-use ('preparing unstructured documents for vector database embeddings and RAG retrieval pipelines') and when-not-to-use ('Do not use for syntactic token counting or semantic sentence segmentation'). This gives an agent clear decision criteria, though it does not name an alternative tool, the exclusions are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_expressionARead-onlyIdempotent
Deterministically evaluates arithmetic, mathematical, and logical expressions inside an AST-isolated sandbox. Prevents LLM calculation errors while strictly blocking arbitrary code execution. Use for reliable numerical calculations and boolean logic. Do not use for executing arbitrary Python statements or importing external libraries.
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | A valid mathematical, arithmetic, or boolean expression string (e.g. '((150 * 12) / 4) + 18.5'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| success | Yes | |
| expression | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context about determinism, AST sandboxing, and blocking arbitrary code execution, which explains the tool's safety and reliability beyond the annotations. It does not contradict annotations.
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 three concise sentences with no redundancy. It front-loads the primary action and purpose, then follows with usage guidance and exclusions. Every sentence adds value without unnecessary detail.
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?
With a single well-documented parameter, an output schema, and annotations covering safety, the description is complete. It provides usage constraints, examples, and safety details, leaving no gaps for correct invocation.
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 'expression' parameter is fully described in the schema (100% coverage) with an example. The tool description reinforces accepted expression types but adds no new semantics beyond the schema, so the baseline score of 3 is appropriate given the 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 function: it deterministically evaluates arithmetic, mathematical, and logical expressions in an AST-isolated sandbox. It uses a specific verb ('evaluates') and resource ('expressions') and distinguishes itself from general code execution by explicitly blocking arbitrary code. No ambiguity or tautology.
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 explicitly states when to use the tool ('reliable numerical calculations and boolean logic') and when not to use it ('executing arbitrary Python statements or importing external libraries'). This provides clear guidance for an agent to select this tool over alternatives, even though siblings are unrelated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_webARead-onlyIdempotent
Fetches and sanitizes readable text content from any public HTTP or HTTPS web page. Strips boilerplate HTML tags, navigation bars, and scripts. Returns clean body text and HTTP status code. Use when an agent needs primary webpage content for summarization or analysis. Do not use for authenticated pages or executing JavaScript.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The complete target website URL including http:// or https:// protocol prefix (e.g. 'https://docs.python.org/3/'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| content | Yes | |
| status_code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description does not contradict them. However, the description adds no extra behavioral context beyond what annotations provide, such as rate limits or side effects other than the read-only fetch.
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 and well-structured, with the core functionality, output, and usage guidance each addressed in single sentences. No redundant or vague wording is present.
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 provides sufficient context for an agent to decide when to use the tool, what it does, what it returns (clean text and HTTP status), and its limitations (no authenticated pages or JavaScript). No critical information is missing.
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 description for the 'url' parameter is comprehensive, covering format and providing an example. The tool description adds no additional semantic detail beyond what the schema already states, so the baseline score of 3 is appropriate given 100% 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 verb 'fetches and sanitizes' and the resource 'readable text content from any public HTTP or HTTPS web page.' It distinguishes itself from sibling tools by focusing on web content extraction, which is unique among DNS audit, chunk text, eval expression, repair JSON, and validate schema.
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 explicitly states when to use ('Use when an agent needs primary webpage content for summarization or analysis') and when not to use ('Do not use for authenticated pages or executing JavaScript'), providing clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repair_jsonARead-onlyIdempotent
Deterministically parses and repairs malformed, truncated, or unclosed JSON strings produced by LLMs (e.g. missing closing brackets, unescaped quotes, trailing commas). Returns parsed valid JSON object. Use when an LLM produces syntax-broken JSON. Do not use on valid non-JSON prose or for modifying data values.
| Name | Required | Description | Default |
|---|---|---|---|
| raw_json | Yes | The unparsed, malformed, or incomplete JSON text string requiring syntax repair into standard RFC 8259 format. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| repaired_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds valuable behavioral context beyond these: it states the tool is 'deterministically' repairing, which implies consistent output, and explicitly says it 'Returns parsed valid JSON object'—a behavioral trait not in the annotations. It does not describe failure behavior, but that is minor given the annotations and output schema.
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, tightly packed sentence that front-loads the core function, immediately lists examples, and concludes with usage constraints. Every phrase earns its place with no fluff or repetition. It is concise and structurally ideal.
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 single-parameter tool with a 100% documented schema and an output schema present, the description is nearly complete. It covers purpose, usage boundaries, and examples. It omits edge-case behavior (e.g., what if repair fails), but that is typically captured by the output schema. Overall, the agent has sufficient information to invoke it correctly.
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% (raw_json has a full description), so baseline is 3. The tool description adds meaningful semantic context by enumerating example malformations (missing brackets, unescaped quotes, trailing commas), which clarifies what kinds of inputs are expected beyond the schema's generic wording. This enrichment justifies a 4.
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 a specific verb+resource: it parses and repairs malformed/truncated/unclosed JSON strings. It lists concrete failure modes (missing closing brackets, unescaped quotes, trailing commas) and explicitly distinguishes from non-JSON use cases ('Do not use on valid non-JSON prose or for modifying data values'). This makes it unmistakably distinct from sibling tools like chunk_text or eval_expression.
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?
Provides explicit when-to-use guidance: 'Use when an LLM produces syntax-broken JSON' and a clear exclusion: 'Do not use on valid non-JSON prose or for modifying data values.' This directly tells an agent when to select this tool and when to avoid it, fully satisfying the usage criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_schemaARead-onlyIdempotent
Deterministically validates that a target JSON payload contains all mandatory keys specified in a reference schema dictionary. Returns a boolean validation status and a list of missing keys. Use when verifying payload structure before downstream processing. Do not use for regex string validation or deep recursive type casting.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The target JSON data object to inspect and validate against the schema definition. | |
| schema_definition | Yes | A JSON object defining mandatory keys required in the target payload (e.g. {'user_id': '', 'status': ''}). |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| missing_keys | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description additionally reveals determinism, return shape (boolean + list of missing keys), and the scope of validation (key presence only), exceeding the baseline set by annotations.
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 tight and well-organized: first sentence states the core action and output, second provides usage context, third gives exclusion guidance. No filler or redundant wording.
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 output schema is present and the description already covers return values, usage boundaries, and parameter roles, all necessary context for invoking this tool correctly is provided. Complete and self-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?
Input schema descriptions cover both parameters with clear roles: 'target JSON data object to inspect' and 'JSON object defining mandatory keys'. Schema coverage is 100% and the descriptions are precise and unambiguous.
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?
Clearly states the verb 'validates' and specific resource 'target JSON payload' against a 'reference schema dictionary'. It also distinguishes from siblings by specifying when to use (payload structure verification) and when not to use (regex or deep type casting).
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?
Explicitly provides both when to use ('when verifying payload structure before downstream processing') and when not to use ('Do not use for regex string validation or deep recursive type casting'), offering clear functional boundaries.
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. Dates show when Glama detected each change.
6 tool updates
v0.3.0- First observed
audit_dns - First observed
chunk_text - First observed
eval_expression - First observed
extract_web - First observed
repair_json - First observed
validate_schema
TDQS
Each tool addresses a completely distinct domain (DNS, text chunking, expression evaluation, web extraction, JSON repair, JSON schema validation) with no functional overlap.
All tool names follow the same verb_noun snake_case pattern (e.g., audit_dns, extract_web, repair_json), providing a predictable and consistent naming scheme.
With 6 tools, the set is concise and well-scoped for a utility-oriented server, avoiding bloat while covering a useful range of common helper operations.
The tools cover their intended utility categories well, though a few complementary operations (e.g., JSON minification or HTML rendering) could be considered minor gaps within the stated domains.
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server for secure Python code execution with artifact capture, virtual environment support, and LM Studio integration.11Apache 2.0
- AlicenseBqualityDmaintenanceProduction-grade MCP server that gives AI agents safe access to your local dev environment: filesystem, databases, processes, and OpenAPI specs.15263MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.62MIT
- AlicenseAqualityDmaintenanceA production-grade MCP server providing a persistent Python REPL with multi-session support, sandboxing, and timeout protection, enabling LLM agents to execute Python code across multiple turns with variables that persist between calls.121MIT
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/Bristlecone2026/bristlecone-logic'
If you have feedback or need assistance with the MCP directory API, please join our Discord server