Content
<div align="center">
# EOS — GitHub Org Context API
**The context layer for AI across your entire GitHub organisation.**
Point it at your org and any agent understands it — who owns what, how the code
is structured, who to ask, what's changing, and how work flows — in one call.
[](https://www.npmjs.com/package/@eos-ai/sdk)
[](https://www.npmjs.com/package/@eos-ai/mcp-server)
[](./LICENSE)
[Docs](https://www.eos.dev/developers/api-reference) · [Get an API key](https://www.eos.dev/settings/api) · [eos.dev](https://www.eos.dev)
</div>
---
Every AI agent, coding tool, and internal workflow is only as good as its
context about your organisation. Today each tool reconstructs that from the raw
GitHub REST/GraphQL API: rate-limited, shallow, and rebuilt from scratch every
time.
The **GitHub Org Context API** is a single endpoint that turns your whole org
into structured, LLM-ready context — ownership, dependencies, expertise, review
history, architecture, and activity — served over REST, an official **MCP
server**, and TypeScript/Python SDKs. No crawling. No rate limits. No rebuilding
the same graph in-house.
## Quickstart
Grab a key at [eos.dev/settings/api](https://www.eos.dev/settings/api), then:
```bash
npm install @eos-ai/sdk
```
```ts
import { EosClient } from "@eos-ai/sdk";
const eos = new EosClient({ apiKey: process.env.EOS_API_KEY });
// Who owns this part of the codebase?
const { data } = await eos.context.ownership({ repo: "acme/api", path: "src/auth" });
for (const owner of data) {
console.log(`${owner.handle} — ${owner.commits} commits`);
}
```
That's it — you're in production against your org's context.
## Connect it to Claude / Cursor / any MCP client
Add the official MCP server and your agent gains org context as native tools —
zero glue code:
```jsonc
{
"mcpServers": {
"eos": {
"command": "npx",
"args": ["-y", "@eos-ai/mcp-server"],
"env": { "EOS_API_KEY": "eos_your_key_here" }
}
}
}
```
## Context surfaces
| Surface | What it returns |
|---|---|
| `context.ownership` | Who owns/knows a file, module, or system (+ bus-factor signal) |
| `context.graph` | Module/dependency graph — repos, modules, co-change coupling |
| `context.contributors` | Per-person expertise and recent activity |
| `context.pulls` | PRs in flight — the review graph, turnaround, who's waiting |
| `context.search` | Natural-language retrieval → LLM-ready chunks **with citations** |
| `context.activity` | Hotspots — where change is concentrated right now |
Every response is the standard `{ data, meta }` envelope, rate-limit-free and
pre-computed. Lists are cursor-paginated; the SDK's `client.paginate()` follows
them for you.
## What's in this repo
| Package | Description |
|---|---|
| [`packages/sdk`](./packages/sdk) — `@eos-ai/sdk` | Typed TypeScript client for every surface, with retries + pagination |
| [`packages/mcp-server`](./packages/mcp-server) — `@eos-ai/mcp-server` | Official Model Context Protocol server |
| [`packages/cli`](./packages/cli) — `@eos-ai/cli` | `eos` command-line tool |
| [`examples`](./examples) | Runnable integration examples |
A Python SDK (`eos-context`) is on the way.
## Why not just call the GitHub API?
GitHub gives you **events**; EOS gives you **context** — semantic,
pre-computed, relationship-aware, rate-limit-free, and LLM-ready. It models the
*organisation* (people, ownership, dependencies, flow), not just code text, and
it's the shared, maintained layer instead of undifferentiated in-house heavy
lifting. Coding assistants aren't competitors — EOS is the context layer
*underneath* them, making their agents smarter about *your* org.
## Contributing
Issues and PRs welcome — see [CONTRIBUTING.md](./CONTRIBUTING.md) and our
[Code of Conduct](./CODE_OF_CONDUCT.md).
## License
[MIT](./LICENSE) © EOS