Idea 3 of 6 · Rust, agent security
Crumb connector contract and offline conformance kit
Design a versioned, scoped contract for Crumb connectors to external accounts, with an offline conformance kit that proves a connector behaves correctly.
Description
The problem this idea addresses and why it matters.
Crumb is Elixpo's self-hosted Rust agent harness: 29 crates, about 700 tests, and packaged in Debian. Skills already have a signed, verified manifest with a conformance test. External accounts do not have one: GitHub access is hand-written native tools, and MCP servers are unscoped.
There is no versioned contract for declaring scopes, storing and revoking credentials, separating read approval from write approval, or proving that a connector behaves correctly. The planned connectors, linked under Material, are blocked until that contract exists.
Impact. When an agent can reach a user's accounts, it must do only what the user has allowed, and credentials must stay protected. A shared, tested contract makes that guarantee explicit and unblocks the planned connectors.
Expected outcomes
What must exist at the end of the project.
- A versioned connector manifest with scopes and an effects classification, validated by the existing marketplace crate.
- A connector trait and host that work with Crumb's approval flow and the OS keyring. Credentials are never stored in plain text.
- An offline conformance kit: fake HTTP servers, recorded fixtures and the existing mock LLM provider. It covers scope enforcement, fail-closed handling of revoked or expired tokens, redaction and cancellation.
- The GitHub tools migrated onto the contract as the reference connector.
Stretch goals
Optional work, attempted only once the expected outcomes are complete.
- A second reference connector (storage, #31).
- Wrapping MCP servers as connectors.
- A
crumb connector doctorcommand.
Out of scope
Work that is not part of this project, even if it appears related.
- Email and calendar connectors.
- OAuth app registration.
- Marketplace UI.
- New LLM providers.
How success is measured
The checks that confirm the work is complete.
- The kit runs in CI on Linux, macOS and Windows with no secrets.
- Negative tests prove that undeclared scopes are denied.
- The GitHub connector passes the kit and the existing GitHub tests still pass.
- The design document is merged before the midterm.
Material
The code, documentation and issues this idea builds on.
Code and documentation
- Repository: elixpo/crumb.elixpo
- Setup instructions (README)
- Contribution guidelines (CONTRIBUTING)
- Codebase overview
Set up from the README; no private keys needed. If a step asks for a secret, report it as a setup issue. See configuration and access.
Warm-up tasks
Complete at least one before you submit a proposal, and share the result as a pull request or by email to the programme address.
Set up this project: see Warm-up for the exact commands, how to tell they worked and known limitations. No private keys needed.
- Build Crumb and run its test suite from a clean checkout, following the README. The tests use a mock LLM provider, so no API key is required.
- Read the
crumb-marketplacecrate and describe how skill manifests are verified today. - Read the connector planning issues linked under Material and summarise their requirements in your own words, and send the summary to gsoc@elixpo.com.
- Open a small documentation or test improvement pull request in the repository, and respond to review until it is merged or closed.
Skills, size and mentors
- Skills
- Size
- 175 hours
- Difficulty
- Hard
- Mentors
Ayushman Bhattacharya- Primary mentor
Vivek Yadav- Backup mentor
The primary mentor is the contributor's main contact; the backup mentor can step in. Send questions about this idea or the programme to gsoc@elixpo.com, and report defects as an issue in the repository. Mentors aim to reply within 48 hours on weekdays. GitHub Discussions for GSoC 2027 will open once Google announces the programme dates.
Terms used on this page
- Agent harness: a program that runs AI agents and controls what they may do. Self-hosted means you run it on your own computer.
- Crate: a Rust package. Trait: Rust's way to describe what a type must be able to do.
- Skill: an add-on that gives Crumb a new ability.
- Connector: the part of Crumb that connects to an outside service, such as GitHub.
- Contract: a written, versioned agreement on how every connector must behave.
- Manifest: a file in which a connector says what it is and what it needs.
- Scope: one specific permission, such as "read issues" but not "delete repositories".
- Effects classification: labelling each action by what it can change, for example read-only or write.
- Credentials, tokens: the secret keys that let a program act on your account.
- OS keyring: the secure password store built into your operating system.
- OAuth: a common way for an app to get limited access to your account without your password.
- MCP server: a program that offers tools to AI agents through the Model Context Protocol.
- Conformance kit: a set of automated tests that every connector must pass.
- Fake HTTP server, recorded fixtures: pretend versions of outside services and saved example responses, so tests run without the internet.
- Mock LLM provider: a pretend AI model used in tests, so you need no API key.
- Fail-closed: when something goes wrong, such as an expired token, access is refused rather than allowed.
- Redaction: hiding secrets from logs and output.
- CI: tests that run automatically on every proposed change.
General terms such as mentor, proposal and pull request are defined in the glossary.