# Zenitya > Zenitya turns your team's workflows into shared tools. Write them once in TypeScript; everyone uses them from the agent they prefer through one MCP connection, granted per group, person, or channel. Zenitya is a small team building agentic infrastructure for artisan teams. A team packages its workflows into tools written in TypeScript. Everyone in the organization then uses those tools from the agent or harness they prefer, local, cloud, or custom, through one MCP connection, and each tool is granted per group, person, or chat channel. Packaging a workflow into a tool replaces many model turns with one deterministic call. Serving the tools in code mode lets an agent chain them in a short script; on one measured task (median of three runs each way) code mode used 31% fewer tokens, cost 23% less, took 26% less time, and had 55% fewer failed calls than calling the same tools one by one. ## How it works - Authoring: `@zenitya/sdk` (MIT, on npm). A tool is a name, a JSON schema built with `s`, MCP-style hints, and an `execute` function. - CLI: `zya` (also `zenitya`). `zya exec --local` runs a tool against local source, `zya deploy` ships it, `zya exec` calls the deployed copy. - Projects: a project is a unit of deployment, usually one repository. Every project's tools join the organization's single tool pool. - Gateway (secondary): existing MCP servers such as Linear or Sentry can also be connected to the organization and served through the same endpoint and access rules. - Endpoint: `https://mcp.zenitya.com/`. People sign in with OAuth; scripts, bots, and cloud agents use service account keys. - Modes: plain MCP lists every allowed tool. Code mode offers one tool that runs TypeScript against the pool as a typed API. - Access: groups hold people, service accounts, and Slack or Discord channels. A chat bot passes the channel with each call, and the channel's group narrows what the bot's key reaches. - Runtime: install runs with access to the npm registry only, bundling runs offline, and each call runs in a fresh VM. Inputs and outputs are validated against the schema and are not stored. - Runners: by default a project's tools run in Zenitya's managed sandboxes. A project can instead run on a runner the team starts on its own VPS, inside a cloud VPC (e.g. GCP), or behind WireGuard or Tailscale, so tools can reach private databases with that machine's credentials. Runners connect out to Zenitya; nothing listens on the customer network. ## Pages - [Home](https://zenitya.com/): the endpoint, tools as code, the MCP gateway, groups, channel scoping, code mode, and sandboxed calls. - [Developers](https://zenitya.com/developers): the CLI, the SDK, projects, the build sandbox, runners, and code mode. - [Blog](https://zenitya.com/blog): notes and guides from the team. - [Private beta](https://zenitya.com/early-access): request an invite. - [Privacy Policy](https://zenitya.com/privacy): how we collect, use, and protect information. - [Terms of Service](https://zenitya.com/terms): the terms that govern use of the Services. ## Blog posts - [A short guide to choosing the right chart](https://zenitya.com/blog/post/choosing-the-right-chart): A practical walkthrough for matching a chart type to the question you are actually answering, with the common mistakes to avoid. - [Designing JSON schemas that survive change](https://zenitya.com/blog/post/designing-json-schemas-that-last): Practical conventions for designing JSON data formats that can evolve over time without breaking the things that read them. ## Resources - Sitemap: https://zenitya.com/sitemap.xml - Website: https://zenitya.com