> For the complete documentation index, see [llms.txt](https://docs.kula.digital/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kula.digital/for-developers/overview.md).

# Overview

Kula Intelligence is a **remote** [**MCP**](https://modelcontextprotocol.io) **server**. AI clients connect to it, authenticate, and call a curated set of tools that read and (where permitted) write a single studio's operational data.

This section is for developers and integrators — agencies building on the Claude API, technical staff wiring up Claude Code, or anyone who wants the detail under the owner-facing guides.

## The shape

* **No anonymous access.** Every connection carries a **role-scoped credential created in app.kula.digital** — a **connect link** (`/connect/{…}/mcp`, OAuth) for Claude, or an **access token** (bearer) for other clients. Served over **streamable HTTP**.
* **One studio per connect link.** Every request is authenticated, and the credential identifies exactly one studio. Tenancy is enforced by a **database boundary** — each studio's data lives in its own Postgres database, and there is no cross-studio read path. The studio is derived from the credential, never from a tool argument.
* **A curated tool surface, not raw database access.** Clients don't run arbitrary SQL against the engine. They call purpose-built tools (`list_tables`, `execute_query` for read-only SELECTs, `entity_lookup`, `get_member_plan_status`, and so on). Reads are scope-gated; writes go only through guarded, audited tools. See the [tool reference](/for-developers/tools.md).
* **Skills as prompts.** The skill library is surfaced as **MCP prompts**, so curated playbooks work in any compliant client.

## Authentication, in one line

There is no open, anonymous access — every client connects with a **role-scoped credential created in app.kula.digital**, and which kind depends on the client:

* **Connect link (OAuth)** for clients with a custom-connector flow (Claude): `https://mcp.kula.digital/connect/{…}/mcp`; using it runs the OAuth handshake (discovery, registration, PKCE, sign-in, consent — see [OAuth](/for-developers/oauth.md)).
* **Access token (bearer)** for other clients: minted in app.kula.digital and presented as `Authorization: Bearer <token>` against `https://mcp.kula.digital/mcp`. See [Connect](/for-developers/connect.md).

Either way the credential carries its [permission level](/connect-claude-and-access/scopes.md); the runtime verifies it, derives the studio and level, and routes to that studio's database.

## What it deliberately doesn't do

* No money movement, refunds, or transfers.
* No AI media generation.
* No cross-studio reads — not even for analytics.
* No arbitrary DML/DDL. `execute_query` is SELECT/`WITH`-only; mutations go through specific, audited tools.

## Where to go next

* [Connect — API, Code, Cursor, Lovable](/for-developers/connect.md) — wire up a client.
* [Tool reference](/for-developers/tools.md) — every tool, with read-only/destructive flags.
* [Schema reference](/for-developers/schema.md) — the tables and columns behind the freeform query tools.
* [OAuth](/for-developers/oauth.md) — discovery, DCR, PKCE, scopes, audience binding.
* [Changelog & versioning](/for-developers/changelog.md) — how the surface evolves.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kula.digital/for-developers/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
