Bitcoin Stratigraphy MCP
oficialUn centro de notaría de IA de grado empresarial, con acceso restringido por L402, y un servidor de datos MCP que ofrece telemetría termodinámica de Bitcoin y anclaje de estado de OpenTimestamps.
¿Qué puedes hacer con Bitcoin Stratigraphy MCP?
- Descubre datos de estratigrafía indexados — Pídele a tu IA que llame a
stratigraphy.listpara ver fechas, alturas, límites y métricas disponibles. - Lista operaciones de prueba — Usa
proof.listpara verificar los esquemas de notarización y verificación admitidos antes de realizar llamadas de pago. - Solicita lotes de notarización — Pide un desafío de
proof.notarizecon un lote L402 de 100 llamadas y luego paga a través de Lightning para anclar un hash en Bitcoin. - Ejecuta clientes sandbox gratuitos — Ejecuta los ejemplos de Node o Python sin billetera para probar la conectividad MCP sin firmar ni pagar.
- Construye un agente LangChain ReAct — Configura un agente solo con herramientas gratuitas que consulte estratigrafía y metadatos de prueba usando el adaptador MCP documentado.
Servidor MCP alojado
npx add-mcp 'https://bitcoin-stratigraphy-dashboard.replit.app/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Bitcoin Stratigraphy MCP — Distribución para Desarrolladores
Versión: 1.1.0 · Nombre en el registro MCP: crstrogish/bitcoin-stratigraphy
Un repositorio de integración independiente y remoto para el motor Bitcoin Stratigraphy MCP: metadatos de registro, contratos OpenAPI, clientes sin dependencias y ejemplos de agentes nativos para frameworks. No se necesita un espacio de trabajo Replit, billetera, clave API ni cuenta de proveedor de modelos para el sandbox gratuito.
Alcance y estado de seguridad
Este paquete se conecta al motor alojado; no contiene ni afirma ejecutar el servidor de liquidación completo fuera de línea. Los códigos fuente del cliente se pueden ejecutar localmente contra el servicio en vivo o un endpoint MCP compatible operado de forma independiente. No hay alias de espacio de trabajo, credenciales incluidas, claves de firma privadas, estado del operador ni dependencia de un repositorio padre.
Se admite la ejecución con LangChain. La fuente de LlamaIndex se conserva, pero la instalación de dependencias y la ejecución no están disponibles temporalmente: su dependencia NLTK se ve afectada por GHSA-8mgp-746c-j5xp. El archivo de requisitos de LlamaIndex intencionalmente no instala nada. No omita las verificaciones de seguridad ni trate la insignia como una afirmación de ejecución compatible. Restaure la instalación solo después de auditar un árbol de dependencias seguro y completo.
Conéctese al motor MCP en vivo
| Superficie | URL |
|---|---|
| MCP HTTP transmisible | https://bitcoin-stratigraphy-dashboard.replit.app/mcp |
| Portal para desarrolladores | https://bitcoin-stratigraphy-dashboard.replit.app/docs |
| OpenAPI en vivo | https://bitcoin-stratigraphy-dashboard.replit.app/openapi.json |
Use la URL MCP en cualquier cliente HTTP transmisible. Importe mcp.json donde su cliente admita configuración MCP basada en URL; algunos hosts requieren un tipo de transporte explícito en su propio formato de configuración. smithery.yaml es metadatos de registro remoto canónicos, no una receta para iniciar un servidor local.
El servidor anuncia 15 capacidades canónicas. initialize y tools/list
son operaciones gratuitas de descubrimiento de protocolo. Exactamente dos ejecuciones de herramientas son gratuitas:
| Herramienta | Argumentos | Propósito |
|---|---|---|
stratigraphy.list | {} | Descubrir fechas/alturas indexadas, límites y métricas disponibles |
proof.list | {} | Listar operaciones de prueba compatibles y metadatos de esquema |
El descubrimiento de catálogo no es una autorización de pago. Otras herramientas canónicas requieren acceso de pago; consulte los esquemas en vivo y los términos de pago antes de autorizar compras.
Inicio rápido del sandbox gratuito — sin billetera
Node.js 22 o más reciente
Desde la raíz de este repositorio, sin instalación de paquetes:
node examples/free-sandbox.mjs
Esto negocia MCP, envía la notificación de inicialización y luego llama solo a
stratigraphy.list y proof.list. No firma, paga, adjunta credenciales ni
realiza solicitudes LLM. Falla en lugar de pagar si una llamada gratuita devuelve HTTP 402.
Para usar su propio endpoint compatible:
node examples/free-sandbox.mjs --url http://127.0.0.1:5000/mcp
Esta es una conexión de cliente, no un comando para iniciar el motor de producción.
Python 3.11 o más reciente
El cliente incluido funciona con la biblioteca estándar; no se requiere instalación de framework:
python -m examples.free_sandbox
Equivalente de Python para copiar y pegar:
from sdk.python.client import BitcoinStratigraphyClient
client = BitcoinStratigraphyClient()
print(client.call_tool("stratigraphy.list", {}))
print(client.call_tool("proof.list", {}))
Ejecute el código desde la raíz del repositorio para que el espacio de nombres sdk sea importable. La verificación
TLS permanece habilitada. Si su organización usa una CA privada, configure
su almacén de certificados de confianza; no deshabilite la verificación.
L402: Lotes de Macro-Macaroon de 100 llamadas
Las capacidades de pago usan credenciales con ámbito de herramienta. Para solicitar un lote, incluya:
X-L402-Batch-Size: 100
Por ejemplo, esta solicitud pide un desafío de lote de notarización; no paga una factura:
curl --include --request POST \
'https://bitcoin-stratigraphy-dashboard.replit.app/mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'X-L402-Batch-Size: 100' \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"proof.notarize","arguments":{"hash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}}'
- Inspeccione HTTP 402, el desafío L402
WWW-Authenticate, el monto de la factura, la expiración y el ámbito exacto de la herramienta. - Pague solo a través de una billetera/cliente Lightning de confianza con límites de gasto explícitos. Verifique que la prueba de liquidación coincida con el hash de pago desafiado.
- Reintente la misma llamada de herramienta con el encabezado del lote y:
Authorization: L402 <macaroon>:<preimage>
X-L402-Batch-Size: 100
La cotización de notarización registrada es de 250 sats/llamada × 100 = 25,000 sats.
La factura en vivo es autoritativa; los ejemplos de precios objetivo del registro no son una
garantía de precio. Un pase proof.notarize no desbloquea otras herramientas de pago.
Los presupuestos, la expiración, la revocación y las cláusulas heredadas aún se aplican en cada uso.
La atenuación delega o reduce el ámbito; no restablece el presupuesto principal.
Los adaptadores nativos de framework no son billeteras. Proporcione una credencial prepagada a través de
L402_AUTHORIZATION, o un proxy de billetera HTTP transmisible de bucle local de confianza a través de
L402_PROXY_URL con límites de gasto explícitos. No confirme credenciales
ni secretos del proveedor de modelos. Las devoluciones de llamada de pago SDK de una sola vez más antiguas no son
implementaciones automáticas de lotes Macro-Macaroon.
LangChain: bucles nativos MCP y ReAct
Use un entorno Python de consumidor separado, no un entorno MCP 1.x más antiguo:
python -m pip install -r cookbooks/requirements-langchain.txt
python cookbooks/langchain_agent.py
El modo predeterminado solo descubre herramientas. Para optar por un LLM y notarización de pago,
configure su clave de proveedor y una credencial de lote proof.notarize prepagada
a través de su administrador de secretos, luego ejecute:
python cookbooks/langchain_agent.py --run
Bucle ReAct solo con herramientas gratuitas para copiar y pegar (las llamadas MCP son gratuitas; el uso del modelo se factura a su proveedor de modelos):
import asyncio
from fastmcp.client import Client
from fastmcp.client.transports import StreamableHttpTransport
from langchain.mcp import MCPAdapter
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
async def main():
transport = StreamableHttpTransport(
url="https://bitcoin-stratigraphy-dashboard.replit.app/mcp"
)
client = Client(transport, mode="legacy", timeout=30)
async with MCPAdapter(client) as adapter:
tools = await adapter.list_tools()
free = [
t.model_copy(update={"name": t.name.replace(".", "_")})
for t in tools if t.name in {"stratigraphy.list", "proof.list"}
]
if len(free) != 2:
raise RuntimeError("Expected both free sandbox capabilities")
agent = create_agent(
model=ChatOpenAI(model="gpt-4.1-mini", temperature=0),
tools=free,
system_prompt="Use only these discovery tools. Report actual results.",
)
result = await agent.ainvoke(
{"messages": [{"role": "user", "content":
"List indexed stratigraphy bounds and supported proof operations."}]}
)
print(result["messages"][-1].content)
asyncio.run(main())
create_agent implementa el bucle ReAct actual modelo → herramienta → observación.
Los alias con guion bajo cumplen las reglas de nomenclatura del proveedor de modelos; los envoltorios conservan los
nombres remotos de herramientas con puntos originales.
LlamaIndex: ejemplo de agente nativo conservado
Solo fuente hasta que se levante la suspensión de seguridad de dependencias. El siguiente ejemplo para copiar y pegar documenta la forma de API compatible para un futuro entorno auditado; no es una instrucción para instalar dependencias vulnerables ahora. El ejemplo completo de notarización de pago está en cookbooks/llamaindex_agent.py.
import asyncio
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
from llama_index.core.agent.workflow import ReActAgent
from llama_index.llms.openai import OpenAI
async def main():
client = BasicMCPClient(
"https://bitcoin-stratigraphy-dashboard.replit.app/mcp", timeout=30
)
try:
tools = await McpToolSpec(client=client).to_tool_list_async()
free = [t for t in tools if t.metadata.name in
{"stratigraphy.list", "proof.list"}]
if len(free) != 2:
raise RuntimeError("Expected both free sandbox capabilities")
for tool in free:
tool.metadata.name = tool.metadata.name.replace(".", "_")
agent = ReActAgent(
tools=free,
llm=OpenAI(model="gpt-4.1-mini", temperature=0),
system_prompt="Use only the discovery tools. Report actual results.",
timeout=90,
)
response = await agent.run(
user_msg="List indexed stratigraphy bounds and supported proof operations."
)
print(str(response))
finally:
await client.http_client.aclose()
asyncio.run(main())
Las credenciales y cargos del modelo son separados de los pagos MCP.
SDK de TypeScript
sdk/typescript contiene tanto el cliente REST como las fuentes del cliente MCP, configuraciones de compilador independientes, pruebas locales y su propio manifiesto de paquete. La versión 0.1.0 del SDK es independiente de la versión 1.1.0 del registro.
cd sdk/typescript
npm install
npm test
npm run build
El manifiesto raíz del paquete conserva la identidad canónica del registro MCP y la versión de lanzamiento, pero reemplaza los scripts/dependencias del monorepo con comandos de distribución portátiles. No es el manifiesto de orquestación del espacio de trabajo privado.
Contenido del repositorio y verificaciones de exportación
README.md Distribution and operational guide
package.json Portable MCP metadata and sandbox/test commands
smithery.yaml Canonical remote registration manifest
mcp.json Remote MCP client configuration
openapi.yaml Canonical self-contained REST/OpenAPI contract
openapi.json JSON rendering of the same canonical contract
LICENSE MIT license
cookbooks/ Native framework sources, requirements, and offline tests
sdk/typescript/ TypeScript REST/MCP clients and standalone package
sdk/python/ Python REST/MCP clients and offline tests
examples/ Wallet-free Node/Python sandbox entrypoints
test/ Node sandbox transport and safety tests
scripts/verify-export.mjs Portable structure, import, and reference checks
npm run verify
npm test
python -m unittest discover -s cookbooks -p 'test_*.py'
python -m unittest discover -s sdk/python -p 'test_*.py'
verify verifica las importaciones de fuente relativas y las referencias de archivos Markdown, las rutas de
paquetes de scripts y SDK, la sintaxis JSON y la ausencia de alias de dependencia del espacio de trabajo.
Compile Python y construya el SDK como verificaciones de sintaxis adicionales. Las pruebas están fuera de línea
a menos que ejecute explícitamente un sandbox o un punto de entrada de agente.
Límites operativos
- Las alturas de estratigrafía indexadas son un índice de datos diarios documentado, no la punta de Bitcoin en vivo ni la procedencia nativa por bloque.
- La aceptación del calendario OTS no es confirmación de Bitcoin. Conserve el recibo separado y verifique su digesto coincidente y la atestación de Bitcoin por separado.
- Las firmas de anclaje, las pruebas ZK y los recibos OTS establecen hechos diferentes; no describa uno como otro.
- Los SDK se detienen en errores de pago. No reintente llamadas de pago a ciegas ni registre pruebas de pago. Almacene las credenciales en un administrador de secretos y revise el gasto y el ámbito de la herramienta antes de habilitar un agente.
- El contrato OpenAPI cubre REST; el
tools/listMCP en vivo describe esquemas MCP ejecutables. La versión del esquema OpenAPI y la versión del SDK no necesitan coincidir con el lanzamiento del registro. - Audite las dependencias opcionales del framework antes de instalarlas o actualizarlas. No se envían billeteras locales, firmas ni credenciales de liquidación.
Licencia
MIT. Consulte LICENSE. Los frameworks y dependencias opcionales conservan sus propias licencias y términos.
🤖 Integración con CrewAI
El motor de datos Bitcoin Stratigraphy admite nativamente el MCPServerAdapter de CrewAI. Inserte este fragmento en su flujo de trabajo para equipar instantáneamente a sus agentes con herramientas termodinámicas y anclaje de estado OpenTimestamps:
pip install crewai-tools[mcp]
Consulte crewai_cookbook.py para ver el script completo de ejecución del agente.