# ContextLayer > Build bespoke software as slates: apps, agents, and MCP tools in one Git repository. Declare resources and deploy with a Git push. - [Overview](https://docs.usecontextlayer.com/index.md): Build, run, and deploy software that brings an app, agents, and MCP tools together in one Git repository. - [Installation](https://docs.usecontextlayer.com/installation.md): Check the prerequisites and sign in to ContextLayer from the command line. - [Quickstart](https://docs.usecontextlayer.com/quickstart.md): Create a slate, run it locally, push it, and open the deployed slate. - [Slate](https://docs.usecontextlayer.com/core-concepts/slate.md): Understand a slate's repository, app, agents, MCP tools, resource declarations, and deployment lifecycle. - [App](https://docs.usecontextlayer.com/core-concepts/slate/app.md): Build a slate's browser interface and use declared resources from React Router loaders and actions. - [Agents](https://docs.usecontextlayer.com/core-concepts/slate/agents.md): Define an agent's instructions and resources, then run it as independent jobs through the API or a schedule. - [MCP](https://docs.usecontextlayer.com/core-concepts/slate/mcp.md): Expose a slate's tools and optional interactive Views to Model Context Protocol clients through its hosted /mcp endpoint. - [Owners and viewers](https://docs.usecontextlayer.com/core-concepts/owners-and-viewers.md): Understand who owns a slate, who can use it, whose resources it uses, and how slate membership enables scheduled work. - [Accounts](https://docs.usecontextlayer.com/core-concepts/accounts.md): A connected account holds a provider's credentials for a personal or organization Owner, independently of any slate. - [Resources](https://docs.usecontextlayer.com/core-concepts/resources.md): The connections, databases and secrets that a slate's app and agents declare in slate.json, and how owner and viewer mode select who supplies each one. - [Connections and assignments](https://docs.usecontextlayer.com/core-concepts/resources/connections-and-assignments.md): A connection declares a need for a provider's tools by slug; an assignment maps that slug to a connected account. - [Databases](https://docs.usecontextlayer.com/core-concepts/resources/databases.md): Declared SQLite databases, shared under the slate's Owner or kept per slate member, changed through authored Kysely migrations. - [Secrets](https://docs.usecontextlayer.com/core-concepts/resources/secrets.md): Named values, such as API keys, that belong to an Owner and that slates declare by name and mode. - [Build an agent](https://docs.usecontextlayer.com/how-to/build-an-agent.md): Write an agent, deploy it, run it as a hosted job, inspect what it did, and put it on a schedule. - [Connect an account](https://docs.usecontextlayer.com/how-to/connect-an-account.md): Connect an account to ContextLayer, then assign it to a connection your slate declares, in local development and on the hosted slate. - [Add a database](https://docs.usecontextlayer.com/how-to/add-a-database.md): Declare a SQLite database, author its migrations with the Kysely CLI, generate its query types, and query it from a loader or action. - [Deploy](https://docs.usecontextlayer.com/how-to/deploy.md): Push main to build, migrate and deploy a slate, then open it at its hosted URL. - [Expose MCP tools](https://docs.usecontextlayer.com/how-to/expose-mcp-tools.md): Author MCP tools and Views in a slate and connect an MCP client to the hosted slate's /mcp endpoint. - [Use a slate](https://docs.usecontextlayer.com/how-to/use-a-slate.md): Open a slate as a viewer, sign in, and set up your own accounts and secrets in the chrome. - [SDK](https://docs.usecontextlayer.com/reference/sdk.md): Import paths, resource APIs, React Router integration, and build configuration for @usecontextlayer/sdk. - [Resolve a slate hostname for authorized viewing](https://docs.usecontextlayer.com/api-reference/slate-routing/resolve-a-slate-hostname-for-authorized-viewing.md) - [Get OAuth metadata for a slate MCP endpoint](https://docs.usecontextlayer.com/api-reference/slate-routing/get-oauth-metadata-for-a-slate-mcp-endpoint.md) - [List slates the caller can manage](https://docs.usecontextlayer.com/api-reference/slates/list-slates-the-caller-can-manage.md): List manageable slates. Supply either owner_user_id or owner_organization_id, or omit both to list all manageable slates. - [Create a slate for a personal or organization Owner](https://docs.usecontextlayer.com/api-reference/slates/create-a-slate-for-a-personal-or-organization-owner.md) - [Get a slate the caller can manage](https://docs.usecontextlayer.com/api-reference/slates/get-a-slate-the-caller-can-manage.md) - [Update who can view a slate](https://docs.usecontextlayer.com/api-reference/slates/update-who-can-view-a-slate.md) - [List declared resources and their configuration](https://docs.usecontextlayer.com/api-reference/slate-resources/list-declared-resources-and-their-configuration.md) - [List declared connections and their account assignments](https://docs.usecontextlayer.com/api-reference/slate-resources/list-declared-connections-and-their-account-assignments.md) - [Assign an account to a declared connection](https://docs.usecontextlayer.com/api-reference/slate-resources/assign-an-account-to-a-declared-connection.md) - [Set a declared secret for its selected Owner](https://docs.usecontextlayer.com/api-reference/slate-resources/set-a-declared-secret-for-its-selected-owner.md) - [Read an agent's instructions from the latest commit](https://docs.usecontextlayer.com/api-reference/agents/read-an-agents-instructions-from-the-latest-commit.md) - [List an agent's provisioned schedules](https://docs.usecontextlayer.com/api-reference/agents/list-an-agents-provisioned-schedules.md) - [Get a provisioned agent schedule](https://docs.usecontextlayer.com/api-reference/agents/get-a-provisioned-agent-schedule.md) - [List an agent's jobs available to the caller](https://docs.usecontextlayer.com/api-reference/agent-jobs/list-an-agents-jobs-available-to-the-caller.md) - [Start an agent job with a prompt](https://docs.usecontextlayer.com/api-reference/agent-jobs/start-an-agent-job-with-a-prompt.md) - [Get an agent job's catalog entry](https://docs.usecontextlayer.com/api-reference/agent-jobs/get-an-agent-jobs-catalog-entry.md) - [Delete an agent job and its execution state](https://docs.usecontextlayer.com/api-reference/agent-jobs/delete-an-agent-job-and-its-execution-state.md) - [Get an agent job's current operation](https://docs.usecontextlayer.com/api-reference/agent-jobs/get-an-agent-jobs-current-operation.md) - [Abort an agent job's pending operation](https://docs.usecontextlayer.com/api-reference/agent-jobs/abort-an-agent-jobs-pending-operation.md) - [Wait for an agent job's operation result](https://docs.usecontextlayer.com/api-reference/agent-jobs/wait-for-an-agent-jobs-operation-result.md) - [List the execution sessions within an agent job](https://docs.usecontextlayer.com/api-reference/agent-jobs/list-the-execution-sessions-within-an-agent-job.md) - [Read the active transcript of an agent job session](https://docs.usecontextlayer.com/api-reference/agent-jobs/read-the-active-transcript-of-an-agent-job-session.md) - [Get model and tool usage for an agent job](https://docs.usecontextlayer.com/api-reference/agent-jobs/get-model-and-tool-usage-for-an-agent-job.md) - [Inspect an agent job's live execution state](https://docs.usecontextlayer.com/api-reference/agent-jobs/inspect-an-agent-jobs-live-execution-state.md) - [List the caller's active accounts for a toolkit](https://docs.usecontextlayer.com/api-reference/accounts/list-the-callers-active-accounts-for-a-toolkit.md) - [Call a tool with the caller's selected account](https://docs.usecontextlayer.com/api-reference/accounts/call-a-tool-with-the-callers-selected-account.md) - [List active accounts belonging to an Owner](https://docs.usecontextlayer.com/api-reference/accounts/list-active-accounts-belonging-to-an-owner.md) - [Create an authorization link to connect an Owner's account](https://docs.usecontextlayer.com/api-reference/accounts/create-an-authorization-link-to-connect-an-owners-account.md) - [Set a named secret belonging to an Owner](https://docs.usecontextlayer.com/api-reference/shared-secrets/set-a-named-secret-belonging-to-an-owner.md) - [Delete a named secret belonging to an Owner](https://docs.usecontextlayer.com/api-reference/shared-secrets/delete-a-named-secret-belonging-to-an-owner.md) ## OpenAPI Specs - [openapi](https://platform.usecontextlayer.com/api/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.