---
id: integrations.developer-tools
title: Developer Guide
summary: Choose REST, application SDKs, terminal tools or MCP for your Teammately workflow.
kind: reference
product_area: developer_tools
status: stable
updated: 2026-10-31
canonical: /docs/integrations/developer-tools
---

# Developer Guide

## Definition

Choose the interface for the work you want to do. Application ingestion, local source packaging and documentation retrieval have different responsibilities.

| Goal | Interface | Start here |
| --- | --- | --- |
| Send captured application logs | Python, TypeScript or Go SDK | [SDKs](/docs/sdks) |
| Control HTTP requests directly | REST API | [First API request](/docs/public-api/quickstart) |
| Submit application outputs for evaluation | CLI or REST | [External outputs](/docs/cli/external-outputs) |
| Package a managed Harness | CLI | [Managed Harness](/docs/cli/managed-harness) |
| Give a coding agent product context | Local product MCP | [MCP setup](/docs/cli/mcp) |
| Retrieve these manuals | Docs MCP | [Agent Context](/docs/agent-context) |
| Connect external services | Workspace integration | [Integration guides](/docs/integrations) |

## Ownership

The product MCP reads explicit organization, Project, Benchmark and Version context. CLI commands own source and outcome writes. A host credential source or API key does not become text in a copied task.

Application ingestion uses the approved host secret mechanism and the source destination. It requires no CLI installation or browser/native OAuth login. Submission acknowledgement, memory buffering, durable admission and processing completion retain different meanings.

## Fields, states, or lifecycle rules

SDK ingestion uses an injected credential without CLI login. CLI native login uses an OS credential store. MCP hosts reuse the selected credential without passing secrets in tool arguments.

Keep submission, processing and evaluation completion separate. Preserve returned identities and follow the operation-specific recovery contract. A successful connection check establishes only the check described by that integration.
## Related task pages

{% related-card-grid title="Related task pages" %}
- [Work with External Agents](/docs/improve/external-agents)
- [Capture and Inspect Logs](/docs/fieldloop/ingest-logs)
- [API Keys and Delegated Access](/docs/admin-console/api-keys)
{% /related-card-grid %}
