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.
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" } } } }
LangChain & LangGraph
Install langchain-mcp-adapters to connect directly over HTTP:
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
async def run():
async with MultiServerMCPClient({
"bristlecone": {
"url": "https://bristleconelogic.com/mcp",
"transport": "http"
}
}) as client:
agent = create_react_agent(ChatOpenAI(model="gpt-4o"), client.get_tools())
res = await agent.ainvoke({"messages": [("user", "Validate payload and inspect for SSRF")]})
print(res["messages"][-1].content)
if __name__ == "__main__":
asyncio.run(run())
LlamaIndex
Install llama-index-tools-mcp to load remote tools dynamically:
import asyncio
from llama_index.tools.mcp import aget_tools_from_mcp_url
from llama_index.core.agent import ReActAgent
from llama_index.llms.openai import OpenAI
async def run():
tools = await aget_tools_from_mcp_url("https://bristleconelogic.com/mcp")
agent = ReActAgent.from_tools(tools, llm=OpenAI(model="gpt-4o"), verbose=True)
res = agent.chat("Check destination URL security: https://example.com")
print(res)
if __name__ == "__main__":
asyncio.run(run())
CrewAI
Install crewai-tools and pass the MCP endpoint into your agents:
from crewai import Agent, Task, Crew
from crewai_tools import MCPServerTool
bristlecone = MCPServerTool(url="https://bristleconelogic.com/mcp")
auditor = Agent(
role="Runtime Guardrail Specialist",
goal="SSRF defense and deterministic AST JSON repair",
backstory="Deterministic validation layer protecting autonomous agents from unsafe execution.",
tools=[bristlecone]
)
task = Task(description="Verify internal CIDR restrictions.", agent=auditor, expected_output="Audit status")
Crew(agents=[auditor], tasks=[task]).kickoff()
Autonomous M2M Settlement
- Protocol: x402 (HTTP 402 Payment Required)
- Network: Base L2 (eip155:8453)
- Asset: USDC
- Payee Contract / Treasury: 0xa17c8c3005698bc4ea6406a00387445e1d30c35f
License
Apache-2.0
Release files for bristlecone-guard 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bristlecone_guard-0.4.3.tar.gz | 20.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bristlecone_guard-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.4 kB
Release files / bristlecone_guard-0.4.3.tar.gz
| Download URL | bristlecone_guard-0.4.3.tar.gz |
|---|---|
| Size | 20.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83310494b3e80bc2ae840ab33ce91b2b20b254d91b6e9656da9c5d16095a1e2d
|
|
BLAKE2b-256 checksum How to use checksums |
203a696c4ee13a0a4fcf5e8aeeee9efdbab00a153b2443136b2c85142bab2b1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / bristlecone_guard-0.4.3-py3-none-any.whl
| Download URL | bristlecone_guard-0.4.3-py3-none-any.whl |
|---|---|
| Size | 20.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d4e6c36084b59596d81fb983c74c55644f6b59a3f56aa7b76b84ea96515e1523
|
|
BLAKE2b-256 checksum How to use checksums |
907add989f38a65aaf428ad4e65d565f21ae224df4d31a46c21112e27ebcafb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log