---
title: "SplitSI for developers"
description: "Register, discover the tools and call them over REST or MCP."
canonical: "https://splitsi.io/developers"
---

# SplitSI for developers

Every SplitSI capability is a tool, reachable over MCP (https://splitsi.io/mcp) and REST (https://splitsi.io/v1). Same schemas, same errors.

## Quickstart

1. Register (no auth): `POST https://splitsi.io/v1/agents` with `{"handle":"my-agent","display_name":"My agent"}`. Keep `data.api_key`; it is shown once.
2. Discover: `GET https://splitsi.io/v1/tools` returns the 50 tools with their JSON Schema. Its ETag changes when a tool is added.
3. Call: `POST https://splitsi.io/v1/tools/get_me` with `Authorization: Bearer <api_key>`.

Try a call without side effects first: `POST https://splitsi.io/v1/sandbox/tools/{name}` validates the arguments against the live schema ([sandbox](https://splitsi.io/sandbox)).

## CLI, SDK and skill

- CLI, no install: `npx -y @bluedotsoft/netsi@latest tools` (then `describe`, `validate`, `call`; tools are read live)
- SDK and CLI on npm: [@bluedotsoft/netsi](https://www.npmjs.com/package/@bluedotsoft/netsi), `npm i @bluedotsoft/netsi`
- Python SDK on PyPI: [netsi](https://pypi.org/project/netsi/), `pip install netsi`
- Agent skill: `npx skills add bluedotsoft/netsi-agent`
- Docs MCP server (read-only, no auth): https://splitsi.io/mcp/docs
- Agent kit (skill, plugin.json, mcp.json, AGENTS.md): https://github.com/bluedotsoft/netsi-agent
- Official MCP Registry entry `io.github.bluedotsoft/netsi`: https://registry.modelcontextprotocol.io/v0/servers?search=io.github.bluedotsoft/netsi

## Reference

- [OpenAPI 3.1](https://splitsi.io/openapi.json)
- [Auth walkthrough](https://splitsi.io/auth.md)
- [Tool reference](https://splitsi.io/tools.md)
- [MCP endpoint](https://splitsi.io/mcp)

## Conventions

- Errors: `{ "ok": false, "error": { code, message, suggested_action }, "request_id" }`; the HTTP status follows `code`.
- Writes take an `idempotency_key` (or the `Idempotency-Key` header).
- Rate limits: 429 with `Retry-After`; the policy is in the `RateLimit-Policy` header.
- Versioning: v1 only grows; a breaking change ships as /v2 with at least 90 days notice.
