Shodai Agreements
Servidor MCP para crear, coordinar y ejecutar acuerdos: compromisos, depósitos en garantía y flujos de trabajo de decisión multipartes entre humanos, agentes y organizaciones.
Documentación
Shodai Agreements SDK + MCP
Shodai convierte definiciones de acuerdos en flujos de trabajo de coordinación legibles por máquina y verificables para humanos, productos y agentes de IA. Los acuerdos incluyen términos legibles además de participantes, entradas válidas, estados, transiciones e historial.
Este repositorio brinda soporte a desarrolladores que usan el SDK de TypeScript, agentes o herramientas que usan MCP, y la aplicación de referencia canónica de Shodai construida sobre el SDK.
Comienza aquí
| Necesidad | Inicio |
|---|---|
| Entender Shodai | Inicio de Shodai · Documentación para desarrolladores · Aplicación de demostración |
| Obtener acceso | Portal de desarrollo / Claves API |
| Construir | Elegir SDK vs MCP · Inicio rápido de MCP · Inicio rápido del SDK de TypeScript · Flujo de trabajo de extremo a extremo |
MCP alojado: https://shodai.network/mcp es el endpoint de ejecución MCP de Shodai Agreements. Los clientes compatibles con OAuth se conectan mediante inicio de sesión en el navegador y consentimiento para acceso a testnet. El endpoint usa Streamable HTTP, requiere un argumento de herramienta environment, admite claves API con ámbito de entorno como respaldo y no tiene custodia de claves privadas alojadas.
Paquetes y aplicaciones: @shodai-network/agreements-api-client · @shodai-network/agreements-mcp-server · agreements-api-playground · shodai-reference-app · oauth-connect-cli (shodai-oauth)
Por qué los desarrolladores usan Shodai Agreements
- Estado de acuerdo compartido que humanos, aplicaciones y agentes pueden inspeccionar.
- Próximas acciones deterministas a partir de estados, entradas, emisores y transiciones autorados.
- Validación y verificación previa al despliegue antes de las firmas.
- Autorización firmada EIP-712 para despliegue y entradas de participantes.
- Historial de estados y entradas para recibos y monitoreo.
- Menos orquestación repetida de contratos, indexación y trabajo de integración de flujos de participantes.
Elige tu camino
| Camino | Úsalo cuando | Primer éxito |
|---|---|---|
| MCP / herramientas de agente | Un agente o cliente compatible con MCP trabajará con acuerdos a través de Streamable HTTP alojado o stdio local. | Autenticar, leer o listar donde esté permitido, validar un ejemplo, verificar previamente el despliegue y preparar datos tipados de despliegue. |
| SDK de TypeScript | Estás construyendo una aplicación o servicio en TypeScript. | Autenticar, leer o listar acuerdos, validar un ejemplo, verificar previamente el despliegue y demostrar preparación para firma EIP-712 local. |
Ambos caminos convergen en el mismo ciclo de vida de acuerdos. Después de que un inicio rápido funcione, ejecuta el flujo de trabajo de extremo a extremo.
Endpoint MCP alojado
Configura Shodai como un servidor MCP remoto Streamable HTTP:
URL:
https://shodai.network/mcp
Required API-calling tool argument:
environment: "testnet"
Inicia la conexión en un cliente compatible con OAuth y luego completa el inicio de sesión y consentimiento en el navegador de Shodai. El endpoint alojado anuncia el servidor de autorización de testnet, así que usa environment: "testnet" para esta conexión OAuth.
Los clientes sin soporte OAuth pueden enviar Authorization: Bearer cns_pk_.... Las claves API solo funcionan en el entorno donde se crearon; una clave de producción puede usar environment: "production". El MCP alojado nunca recibe claves privadas; las herramientas de escritura usan permisos EIP-712 firmados externamente o preparación de datos tipados.
Un GET de navegador ordinario a /mcp puede devolver 405 porque el endpoint espera solicitudes de protocolo MCP. Las superficies MCP en docs.shodai.network son solo para documentación y búsqueda; https://shodai.network/mcp es el endpoint de ejecución de Agreements.
- Inicio rápido de MCP: docs.shodai.network/sdks/quickstart-with-mcp
- Documentación del paquete MCP:
packages/agreements-mcp-server/README.md - Tarjeta del servidor de ejecución: shodai.network/.well-known/mcp/server-card.json
- Catálogo MCP: shodai.network/.well-known/mcp/catalog.json
Qué contiene este repositorio
| Paquete o aplicación | Ubicación | Propósito |
|---|---|---|
@shodai-network/agreements-api-client | packages/agreements-api-client | Cliente REST tipado para la API de Agreements con ayudantes de firma de permisos viem. |
@shodai-network/agreements-mcp-server | packages/agreements-mcp-server | Paquete de servidor MCP local alineado con la superficie MCP de ejecución de Agreements alojada. |
agreements-api-playground | apps/agreements-api-playground | Aplicación Vite de referencia para experimentación con la API en el navegador y ejemplos de flujos de trabajo del SDK. |
shodai-reference-app | apps/shodai-reference-app | Implementación de referencia full-stack React/Nest/Mongo para autenticación de plataforma de desarrolladores, uso de la API de Agreements, UX del ciclo de vida de acuerdos, firma, persistencia y reconciliación de webhooks. |
oauth-connect-cli (shodai-oauth) | apps/oauth-connect-cli | CLI que conecta una aplicación OAuth pública a un usuario mediante authorization_code + PKCE, almacena una sesión renovable y llama a la API de Agreements como ese usuario. |
Instala el SDK de TypeScript
La mayoría de los consumidores de TypeScript deberían instalar el paquete npm publicado en lugar de este monorepo:
npm install @shodai-network/agreements-api-client
Agrega viem si quieres los ayudantes integrados de firma de permisos para despliegue y envío de entradas:
npm install @shodai-network/agreements-api-client viem
Crea un cliente con un entorno Shodai nombrado:
const client = new ApiClient({
environment: 'testnet',
apiKey: process.env.AGREEMENTS_API_KEY,
});
La documentación de uso del SDK y del ciclo de vida de la API está en packages/agreements-api-client/README.md. Para opciones del constructor, métodos, ayudantes de firma, diagnósticos y exportaciones, consulta la referencia del cliente TypeScript.
Ejecuta MCP localmente
Usa el paquete MCP publicado para clientes stdio locales:
{
"mcpServers": {
"shodai-agreements": {
"command": "npx",
"args": ["-y", "@shodai-network/agreements-mcp-server"],
"env": {
"AGREEMENTS_API_KEY": "YOUR_API_KEY",
"AGREEMENTS_API_ENVIRONMENT": "testnet"
}
}
}
}
El modo stdio local usa AGREEMENTS_API_ENVIRONMENT; el MCP alojado usa el argumento de herramienta environment. Consulta packages/agreements-mcp-server/README.md para autoalojamiento, variables de entorno, herramientas, recursos, prompts y uso de Inspector.
Ciclo de vida de acuerdos
| Fase | SDK de TypeScript | MCP |
|---|---|---|
| Autorar JSON de acuerdo | Usa artefactos JSON completos de acuerdos y ejemplos. | Lee recursos de ejemplo o usa el prompt de autoría. |
| Validar estructura | client.validateTemplate(...) | validate_agreement |
| Verificar previamente el despliegue | client.validateDeployment(...) | preflight_deployment |
| Preparar o firmar permiso de despliegue | Ayudantes de firma del SDK con viem | prepare_deployment_typed_data y firma externa |
| Desplegar | deployAgreementWithPermit(...) o client.deployWithPermit(...) | deploy_agreement con campos de permiso firmados |
| Leer estado | client.getAgreementState(...) | get_agreement_state |
| Preparar o firmar permiso de entrada | Ayudantes de firma de entradas del SDK | prepare_input_typed_data y firma externa |
| Enviar entrada | submitAgreementInputWithPermit(...) o client.submitAgreementInput(...) | submit_input con campos de permiso firmados |
| Inspeccionar historial | client.listAgreementInputs(...) | get_input_history |
Para un recorrido guiado por validación, despliegue, envío de entradas firmadas, lecturas de estado e historial de entradas, usa el flujo de trabajo de extremo a extremo.
Entornos de la API de Agreements
El SDK prefiere un entorno nombrado en lugar de un host sin procesar:
const client = new ApiClient({
environment: 'testnet',
apiKey: process.env.AGREEMENTS_API_KEY,
});
Mapeos integrados:
testnet->https://test-api.shodai.networkproduction->https://api.shodai.network
Las claves API tienen ámbito de entorno. Usa una clave de testnet con testnet y una clave de producción con production.
El cliente aún admite baseUrl como anulación avanzada para proxies locales, pasarelas internas o despliegues no estándar. Continúa agregando /v0/* automáticamente.
Desarrollo local
# from the repository root
pnpm install
pnpm build
pnpm dev
El comando de desarrollo predeterminado inicia la aplicación de referencia de Shodai. Su backend usa por defecto http://localhost:4199 y su frontend usa por defecto http://localhost:5184/agreements/.
Detén la pila de desarrollo de la aplicación de referencia con:
pnpm dev:stop
Consulta apps/shodai-reference-app/README.md para los archivos de entorno local requeridos.
Ejecuta el playground de la API explícitamente con:
pnpm dev:playground
El playground usa por defecto http://localhost:5176. Si ese puerto ya está en uso, inicia el playground en otro puerto:
pnpm --filter agreements-api-playground exec vite --host 127.0.0.1 --port 4176
Para desarrollo local en el navegador, el playground prioriza el entorno y usa por defecto testnet. Usa el selector de entorno dentro de la aplicación para cambiar entre objetivos de API alojados testnet y production.
Comandos de validación opcionales específicos de paquetes:
pnpm --filter @shodai-network/agreements-api-client run lint
pnpm --filter @shodai-network/agreements-mcp-server test
Consulta apps/agreements-api-playground/README.md para la configuración completa del entorno.
Límites
El MCP alojado no guarda claves privadas. El OAuth de navegador del MCP alojado y el OAuth delegado directo de la API son rutas de conexión admitidas; los pagos x402 no son una ruta de configuración actual. Los acuerdos de Shodai no reclaman finalidad legal ni ejecución totalmente autónoma. Shodai no mueve valor sin entradas firmadas autorizadas.
Notas del proyecto de código abierto
- Documentación para consumidores del cliente API:
packages/agreements-api-client/README.md - Notas para mantenedores del cliente API:
packages/agreements-api-client/DEVELOPMENT.md - Documentación del servidor MCP:
packages/agreements-mcp-server/README.md - Documentación del playground:
apps/agreements-api-playground/README.md - Licencia raíz: Apache-2.0
- Licencia del paquete MCP: MIT