# Sveda > A universal JavaScript client and an independent Rust runtime — stream, tools, and MCP without standing up your own orchestration. Sveda is an embeddable agent: a JS client (@sveda-ai/core), an independent Rust runtime (sveda-server on 0.0.0.0:8787), a stream protocol, and MCP. Auth stays on the host. Start at the docs, then the host SDK that matches the backend. ## Docs - [Docs](https://sveda.dev/docs): Reference for the client, host language SDKs, the runtime, and the wire. Copy is aligned to the source. - [Get started](https://sveda.dev/docs/start): Two pieces: a JS client in the host, a Rust runtime beside it. This page is the shortest path to a live stream. - [JS client](https://sveda.dev/docs/client): SvedaClient is the attach surface. Vue and web-component packages exist as optional UI — core does not require them. - [Runtime](https://sveda.dev/docs/runtime): The binary is sveda-server. It is Axum. It is not in your application request cycle unless you choose to proxy it. - [Deploy](https://sveda.dev/docs/deploy): Replicas are stateless. Histories and settings live in Postgres. Occupancy, throttle, and MCP creds live in Redis. - [Stream protocol](https://sveda.dev/docs/stream): One POST, one SSE response, a closed event list. Frontend vs backend tool.call targets. - [MCP & tools](https://sveda.dev/docs/mcp): Three layers: builtin agent tools, client-registered frontend tools, and host MCP listed at token mint. - [Models](https://sveda.dev/docs/models): The catalog is on the runtime. The client may pass model or provider on a turn; failover is still the ordered list. - [Embed token](https://sveda.dev/docs/embed): Tokens are HMAC, prefixed sveda_embed_, scoped to visitor_id. The host mints them. The browser only sends them. - [Host SDKs](https://sveda.dev/docs/hosts): Each host mints a scoped embed token, then the page opens JS chat or an iframe. The host API key never leaves the server. - [No framework](https://sveda.dev/docs/hosts/vanilla): A static page can open the chat. Something on your origin still has to mint the embed token — curl for local, or a tiny POST /sveda/session. - [PHP](https://sveda.dev/docs/hosts/php): Framework-agnostic PHP. Factory::factory() → embed()->createToken(). Your page only receives origin and token. - [Laravel](https://sveda.dev/docs/hosts/laravel): The package wraps sveda-ai/client, mints Sanctum MCP tokens, and exposes StartSidecarSessionController. - [Python](https://sveda.dev/docs/hosts/python): One client. Flask, Django, and FastAPI are route wrappers. start_host_session returns origin, token, expires_in, appearance. - [Node](https://sveda.dev/docs/hosts/node): Native fetch. startHostSession talks to the sidecar. The page still opens chat with data-sveda-open buttons. - [Ruby](https://sveda.dev/docs/hosts/ruby): The gem mints embed tokens with Bearer host auth. Rails is a controller and a layout. Plain Ruby is the same HTTP call. - [Go](https://sveda.dev/docs/hosts/go): No framework required. net/http plus the module is the host. Templates only render chat buttons when the origin is set. - [Java](https://sveda.dev/docs/hosts/java): HttpClient transport. Spring Boot is a controller and Thymeleaf. The SDK does not need Spring. - [.NET](https://sveda.dev/docs/hosts/dotnet): net8.0 Sveda.Client. ASP.NET is MapPost plus a layout. The library is usable from any HttpClient host. ## Product - [Home](https://sveda.dev/): An agent you can embed. - [Product](https://sveda.dev/product): Each capability has its own page. Start with the client and the runtime — everything else hangs off that pair. - [JS client](https://sveda.dev/product/client): Install @sveda-ai/core. SvedaClient holds endpoints, headers, and tools. session.send posts a turn. Streaming stays on the wire — not a Vue widget, not a Laravel package. - [Rust runtime](https://sveda.dev/product/runtime): sveda-server binds 0.0.0.0:8787 by default. It owns the agent loop, catalog, tools, and MCP. Your routes, auth, and deploy stay yours. - [Stream protocol](https://sveda.dev/product/stream): Tokens, tools, MCP, and errors travel one SSE pipe. The client asks for application/vnd.sveda.stream+json. The runtime answers with text/event-stream. - [MCP & tools](https://sveda.dev/product/mcp): Backend tools run in sveda-server. Frontend tools run in the browser. Host MCP is an HTTP server you pass when minting the embed token. - [Models](https://sveda.dev/product/models): deepseek-v4-flash-responses is the default. Failover walks deepseek-v4-flash-anthropic next. Custom endpoints speak Responses or Anthropic. The stream does not restart. - [Embed token](https://sveda.dev/product/embed): Mint a scoped embed token per visitor. The browser never holds your host key. Optional host MCP credentials are stored per visitor_id when you pass them together. - [Host SDKs](https://sveda.dev/product/hosts): The browser never holds SVEDA_EMBED_HOST_API_KEY. Your backend calls POST /sveda/embed/token, then the page opens JS chat or an iframe. ## Solutions - [Solutions](https://sveda.dev/solutions): Sveda is not a vertical SaaS. These pages map the stack onto the jobs it actually does. - [Product copilot](https://sveda.dev/solutions/product-copilot): Your app keeps routes and auth. SvedaClient talks to sveda-server. The visitor gets a scoped token. The stream carries text, tools, and MCP events. - [Code agent](https://sveda.dev/solutions/code-agent): When a workspace index is attached, search_code and read_code_file are in the catalog. The agent searches, then reads, then answers — in one stream. - [Host MCP](https://sveda.dev/solutions/host-mcp): Host MCP is not a second client you wire by hand. URL and token go on POST /sveda/embed/token. The runtime lists tools and calls them during the turn. - [Model failover](https://sveda.dev/solutions/model-failover): Failover is an ordered list on the runtime, not a rewrite of the UI. The same session.send, the same event types, the next model in line. ## Optional - [About](https://sveda.dev/about): Sveda is the JS client, the Rust runtime, the stream protocol, and MCP — shipped so product teams stop growing an orchestration repo. - [Changelog](https://sveda.dev/changelog): This site tracks the product. Source of truth for commits and releases is the GitHub repository. - [Privacy](https://sveda.dev/privacy): Sveda the product runs on your machines. This page covers the marketing site at sveda.dev. - [Terms](https://sveda.dev/terms): The software is open source. This site is a product description, not a hosted chat service. - [Source](https://github.com/neresson/sveda): Client, runtime, protocol, and host SDKs.