Skip to main content
Glama
CNSLabs

Shodai Agreements

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AGREEMENTS_API_KEYYesShodai API key for Agreements API tool calls. Use a key beginning with cns_pk_.
AGREEMENTS_API_ENVIRONMENTYesAgreements API environment for local stdio deployments.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_agreementsA

Lists agreement summaries visible to the current API key. Supports pagination (cursor + limit), filtering by chain and state, and sorting. Returns summaries only; use get_agreement for the full record.

get_agreementA

Returns a single agreement record, including the full authored agreement JSON and hosted record context (participants, observers, owner, deployment address).

get_agreement_documentA

Returns the rendered hosted prose document for an agreement by documentId, including content type, display name, chain, docUri, and agreement record references. Use documentId from list_agreements/get_agreement or from prepare_deployment_typed_data.

get_agreement_stateA

Returns the current state of an agreement. For deployed agreements, interpret the state against the states defined in the authored agreement lifecycle (execution.states). Use this to poll for transitions after submitting an input.

get_input_historyA

Returns recorded input submissions for an agreement, with pagination and filtering. Use this to inspect which events have been submitted and whether each is PENDING, MINED, or FAILED.

validate_agreementA

Checks only the authored agreement JSON document and returns participant variable keys, input IDs, state IDs, and warnings. This does not validate deployment values, participant wallet addresses, signer, or permit data — use preflight_deployment for that. Iterate on the agreement JSON until this returns no blocking warnings. Requires the agreements.write scope.

preflight_deploymentA

Checks whether authored agreement JSON plus target chain, deployment values, participant wallet mappings, and observer context are ready for deployment. This does not deploy the agreement and does not require a signature. Always run this before signing a deploy permit. Requires the agreements.write scope.

deploy_agreementA

Deploys authored agreement JSON using an EIP-712 permit; the API submits the on-chain transaction and returns the deployed agreement record. Provide a pre-signed permit (signer, deadline, signature), or call prepare_deployment_typed_data first to obtain the payload to sign. Always run preflight_deployment before deploying. Requires the agreements.write scope.

submit_inputA

Submits a signed input to a deployed agreement, advancing its on-chain lifecycle. The input ID and values must match an input defined by the agreement JSON, and the signer must be allowed by that input. Provide a pre-signed permit (signer, deadline, signature), or call prepare_input_typed_data first. Requires the agreements.write scope.

prepare_deployment_typed_dataA

Builds the exact EIP-712 payload that must be signed to authorize deployment of the given agreement JSON. Sign the returned typedData with the deploying wallet (eth_signTypedData_v4 / viem signTypedData), then call deploy_agreement with signer, deadline, and the signature components. No transaction is sent and nothing is stored. Reads the signer nonce from the target chain.

prepare_input_typed_dataA

Builds the exact EIP-712 payload that must be signed to authorize submitting an input to a deployed agreement. Sign the returned typedData with a wallet allowed by the input definition, then call submit_input with signer, deadline, and the signature components. No transaction is sent and nothing is stored. Reads the agreement record and signer nonce.

Prompts

Interactive templates invoked by user choice

NameDescription
author_agreementEnd-to-end authoring workflow: learn the agreement JSON shape from the example resources, draft the document, then iterate with validate_agreement and preflight_deployment until it is deployment-ready.

Resources

Contextual data attached and managed by the client

NameDescription
simple-example-agreementThe smallest complete, deployable agreement JSON artifact (a two-party memorandum of understanding). Use it to learn the authoritative document shape: metadata, variables with participant subtypes, markdown content, and a linear execution lifecycle.
complex-example-agreementA richer complete agreement JSON example with more states, event types, metadata, and branching behavior. Use it as the reference when authoring non-trivial lifecycles.
authoring-guideHow to make good authoring decisions when turning a real business workflow into agreement JSON: content, variables, participants, states, inputs, and transitions.
docs-indexCanonical index of all Agreements API documentation pages with Markdown export URLs. Fetch the linked pages for deployment, signing, and troubleshooting workflows not covered by this server.

Latest Blog Posts

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/CNSLabs/agreements-api-sdk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server