Bitcoin Stratigraphy MCP
officielUn hub de notariat IA de niveau entreprise, sécurisé par L402, et serveur de données MCP distribuant la télémétrie thermodynamique de Bitcoin et l'ancrage d'état OpenTimestamps.
Que pouvez-vous faire avec Bitcoin Stratigraphy MCP ?
- Découvrir les données stratigraphiques indexées — Demandez à votre IA d’appeler
stratigraphy.listpour voir les dates, hauteurs, limites et métriques disponibles. - Lister les opérations de preuve — Utilisez
proof.listpour vérifier les schémas de notarisation et de vérification pris en charge avant d’effectuer des appels payants. - Demander des lots de notarisation — Demandez un défi
proof.notarizeavec un lot L402 de 100 appels, puis payez via Lightning pour ancrer un hash sur Bitcoin. - Exécuter des clients sandbox gratuits — Lancez les exemples Node ou Python sans portefeuille pour tester la connectivité MCP sans signer ni payer.
- Construire un agent ReAct LangChain — Configurez un agent utilisant uniquement des outils gratuits qui interroge les métadonnées de stratigraphie et de preuve à l’aide de l’adaptateur MCP documenté.
Serveur MCP hébergé
npx add-mcp 'https://bitcoin-stratigraphy-dashboard.replit.app/mcp'S’installe dans Claude Code, Codex, Cursor et plus
Documentation
Bitcoin Stratigraphy MCP — Distribution pour développeurs
Version : 1.1.0 · Nom du registre MCP : crstrogish/bitcoin-stratigraphy
Un dépôt d'intégration autonome, pensé pour le distant en priorité, pour le moteur Bitcoin Stratigraphy MCP : métadonnées de registre, contrats OpenAPI, clients sans dépendances et exemples d'agents natifs pour frameworks. Aucun espace de travail Replit, portefeuille, clé API ou compte de fournisseur de modèle n'est requis pour le bac à sable gratuit.
Portée et statut de sécurité
Ce bundle se connecte au moteur hébergé ; il ne contient ni ne prétend exécuter le serveur de règlement complet hors ligne. Les sources client peuvent être exécutées localement contre le service en direct ou un point de terminaison MCP compatible exploité indépendamment. Il n'y a pas d'alias d'espace de travail, d'identifiants intégrés, de clés de signature privées, d'état d'opérateur ni de dépendance à un dépôt parent.
L'exécution LangChain est prise en charge. La source LlamaIndex est conservée, mais l'installation des dépendances et l'exécution sont temporairement indisponibles : sa dépendance NLTK est affectée par GHSA-8mgp-746c-j5xp. Le fichier d'exigences LlamaIndex n'installe intentionnellement rien. Ne contournez pas les contrôles de sécurité et ne considérez pas le badge comme une preuve d'exécution prise en charge. Ne restaurez l'installation qu'après avoir audité un arbre de dépendances sûr et complet.
Se connecter au moteur MCP en direct
| Surface | URL |
|---|---|
| MCP HTTP streamable | https://bitcoin-stratigraphy-dashboard.replit.app/mcp |
| Portail développeur | https://bitcoin-stratigraphy-dashboard.replit.app/docs |
| OpenAPI en direct | https://bitcoin-stratigraphy-dashboard.replit.app/openapi.json |
Utilisez l'URL MCP dans n'importe quel client HTTP streamable. Importez mcp.json là où votre client prend en charge la configuration MCP basée sur URL ; certains hôtes exigent un type de transport explicite dans leur propre format de configuration. smithery.yaml est la métadonnée d'enregistrement à distance canonique, et non une recette de lancement de serveur local.
Le serveur annonce 15 capacités canoniques. initialize et tools/list
sont des opérations gratuites de découverte de protocole. Exactement deux exécutions d'outils sont gratuites :
| Outil | Arguments | Objectif |
|---|---|---|
stratigraphy.list | {} | Découvrir les dates/hauteurs indexées, les bornes et les métriques disponibles |
proof.list | {} | Lister les opérations de preuve prises en charge et les métadonnées de schéma |
La découverte de catalogue n'est pas une autorisation de paiement. Les autres outils canoniques nécessitent un accès payant ; interrogez les schémas en direct et les conditions de paiement avant d'autoriser des achats.
Démarrage rapide du bac à sable gratuit — sans portefeuille
Node.js 22 ou plus récent
Depuis la racine de ce dépôt, sans installation de paquet :
node examples/free-sandbox.mjs
Cela négocie MCP, envoie la notification d'initialisation, puis appelle uniquement
stratigraphy.list et proof.list. Cela ne signe pas, ne paie pas, n'attache pas d'identifiants
ni n'effectue de requêtes LLM. Cela échoue plutôt que de payer si un appel gratuit renvoie HTTP 402.
Pour utiliser votre propre point de terminaison compatible :
node examples/free-sandbox.mjs --url http://127.0.0.1:5000/mcp
Il s'agit d'une connexion client, et non d'une commande pour démarrer le moteur de production.
Python 3.11 ou plus récent
Le client fourni fonctionne avec la bibliothèque standard ; aucune installation de framework n'est requise :
python -m examples.free_sandbox
Équivalent Python copier-coller :
from sdk.python.client import BitcoinStratigraphyClient
client = BitcoinStratigraphyClient()
print(client.call_tool("stratigraphy.list", {}))
print(client.call_tool("proof.list", {}))
Exécutez le code depuis la racine du dépôt pour que l'espace de noms sdk soit importable. La vérification
TLS reste activée. Si votre organisation utilise une autorité de certification privée, configurez
son magasin de certificats de confiance ; ne désactivez pas la vérification.
L402 : lots de Macro-Macarons de 100 appels
Les capacités payantes utilisent des identifiants limités aux outils. Pour demander un lot, incluez :
X-L402-Batch-Size: 100
Par exemple, cette requête demande un défi de lot de notarisation ; elle ne paie pas de facture :
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"}}}'
- Inspectez HTTP 402, le défi L402
WWW-Authenticate, le montant de la facture, l'expiration et la portée exacte de l'outil. - Payez uniquement via un portefeuille/client Lightning de confiance avec des limites de dépenses explicites. Vérifiez que la preuve de règlement correspond au hachage de paiement défié.
- Réessayez le même appel d'outil avec l'en-tête de lot et :
Authorization: L402 <macaroon>:<preimage>
X-L402-Batch-Size: 100
Le devis de notarisation enregistré est de 250 sats/appel × 100 = 25 000 sats.
La facture en direct fait foi ; les exemples de prix cibles du registre ne sont pas une
garantie de prix. Un laissez-passer proof.notarize ne débloque pas les autres outils payants.
Les budgets, l'expiration, la révocation et les clauses héritées s'appliquent toujours à chaque utilisation.
L'atténuation délègue ou réduit la portée ; elle ne réinitialise pas le budget parent.
Les adaptateurs natifs de framework ne sont pas des portefeuilles. Fournissez un identifiant prépayé via
L402_AUTHORIZATION, ou un proxy de portefeuille Streamable HTTP en boucle locale de confiance via
L402_PROXY_URL avec des limites de dépenses explicites. Ne validez ni les identifiants
ni les secrets du fournisseur de modèle. Les anciens rappels de paiement SDK à usage unique ne sont pas
des implémentations automatiques de traitement par lots Macro-Macarons.
LangChain : boucles MCP natives et ReAct
Utilisez un environnement Python consommateur séparé, et non un ancien environnement MCP 1.x :
python -m pip install -r cookbooks/requirements-langchain.txt
python cookbooks/langchain_agent.py
Le mode par défaut découvre uniquement les outils. Pour opter pour un LLM et une notarisation payante,
configurez votre clé de fournisseur et un identifiant de lot proof.notarize prépayé
via votre gestionnaire de secrets, puis exécutez :
python cookbooks/langchain_agent.py --run
Boucle ReAct copier-coller uniquement avec outils gratuits (les appels MCP sont gratuits ; l'utilisation du modèle est facturée par votre fournisseur de modèle) :
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 implémente la boucle ReAct actuelle modèle → outil → observation.
Les alias avec soulignement satisfont les règles de nommage du fournisseur de modèle ; les wrappers conservent les
noms d'outils distants d'origine avec points.
LlamaIndex : exemple d'agent natif conservé
Source uniquement jusqu'à la levée de la suspension de sécurité des dépendances. L'exemple copier-coller suivant documente la forme d'API prise en charge pour un futur environnement audité ; ce n'est pas une instruction pour installer des dépendances vulnérables maintenant. L'exemple complet de notarisation payante se trouve dans 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())
Les identifiants et frais de modèle sont distincts des paiements MCP.
SDK TypeScript
sdk/typescript contient à la fois les sources du client REST et du client MCP, des configurations de compilateur indépendantes, des tests locaux et son propre manifeste de paquet. La version SDK 0.1.0 est indépendante de la version 1.1.0 du registre.
cd sdk/typescript
npm install
npm test
npm run build
Le manifeste racine du paquet conserve l'identité canonique du registre MCP et la version de publication, mais remplace les scripts/dépendances du monorepo par des commandes de distribution portables. Ce n'est pas le manifeste d'orchestration de l'espace de travail privé.
Contenu du dépôt et contrôles d'exportation
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 vérifie les imports sources relatifs et les références de fichiers Markdown, les chemins
de paquets de scripts et SDK, la syntaxe JSON et l'absence d'alias de dépendances d'espace de travail.
Compilez Python et construisez le SDK comme contrôles de syntaxe supplémentaires. Les tests sont hors ligne
sauf si vous exécutez explicitement un point d'entrée de bac à sable ou d'agent.
Limites opérationnelles
- Les hauteurs de stratigraphie indexées sont un index quotidien documenté, et non le sommet Bitcoin en direct ni une provenance native par bloc.
- L'acceptation du calendrier OTS n'est pas une confirmation Bitcoin. Conservez le reçu détaché et vérifiez séparément son condensé correspondant et l'attestation Bitcoin.
- Les signatures d'ancrage, les preuves ZK et les reçus OTS établissent des faits différents ; ne décrivez pas l'un comme un autre.
- Les SDK s'arrêtent en cas d'erreur de paiement. Ne réessayez pas aveuglément les appels payants et ne journalisez pas les preuves de paiement. Stockez les identifiants dans un gestionnaire de secrets et examinez les dépenses et la portée des outils avant d'activer un agent.
- Le contrat OpenAPI couvre REST ; le
tools/listMCP en direct décrit les schémas MCP exécutables. La version de schéma OpenAPI et la version SDK ne doivent pas nécessairement correspondre à la version du registre. - Auditez les dépendances facultatives du framework avant de les installer ou de les mettre à jour. Aucun portefeuille local, aucune identifiant de signature ou de règlement n'est fourni.
Licence
MIT. Voir LICENSE. Les frameworks et dépendances facultatives conservent leurs propres licences et conditions.
🤖 Intégration CrewAI
Le moteur de données Bitcoin Stratigraphy prend nativement en charge le MCPServerAdapter de CrewAI. Insérez cet extrait dans votre flux de travail pour équiper instantanément vos agents d'outils thermodynamiques et d'ancrage d'état OpenTimestamps :
pip install crewai-tools[mcp]
Consultez crewai_cookbook.py pour le script complet d'exécution de l'agent.