# How to integrate Synthesize Bio MCP with Hermes

```json
{
  "title": "How to integrate Synthesize Bio MCP with Hermes",
  "toolkit": "Synthesize Bio MCP",
  "toolkit_slug": "synthesize_bio_mcp",
  "framework": "Hermes",
  "framework_slug": "hermes-agent",
  "url": "https://composio.dev/toolkits/synthesize_bio_mcp/framework/hermes-agent",
  "markdown_url": "https://composio.dev/toolkits/synthesize_bio_mcp/framework/hermes-agent.md",
  "updated_at": "2026-09-07T05:35:53.750Z"
}
```

## Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.
This guide explains the easiest and most robust way to connect your Synthesize Bio account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

## Also integrate Synthesize Bio MCP with

- [ChatGPT Work](https://composio.dev/toolkits/synthesize_bio_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/synthesize_bio_mcp/framework/claude-cowork)

## TL;DR

### What is Composio Connect?
Composio Connect is a consumer offering that lets anyone plug 1,500+ applications directly into their agent harness — including Hermes. It can:
- Search and load tools from relevant toolkits on-demand, reducing context usage.
- Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
- Manage app authentication end-to-end with zero manual overhead.

## Connect Synthesize Bio MCP to Hermes

### Integrating Synthesize Bio with Hermes
### Using Composio Connect CLI
1. Install the Composio CLI
Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

```bash
curl -fsSL https://composio.dev/install | bash
```

## What is the Synthesize Bio MCP server, and what's possible with it?

The Synthesize Bio MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Synthesize Bio account. It provides structured and secure access so your agent can perform Synthesize Bio operations on your behalf.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SYNTHESIZE_BIO_MCP_ANALYZE_GENE_EXPRESSION` | Analyze gene expression | Starts a differential gene expression analysis using Synthesize Bio's AI platform. Requires the resolution_id returned by resolve_sample_metadata; raw natural-language prompts are not accepted. Requires `user_confirmed_metadata: true`. When the flag is missing or false, the call is rejected with failure_kind `user_confirmation_required`. Optional workspace_id selects which workspace owns the generated dataset. When omitted, the workspace from resolve_sample_metadata is used automatically. When the account has more than one workspace and the resolution has no workspace, the call is rejected with failure_kind `workspace_selection_required` and a `workspaces` list of `{ name, workspace_id }`. Returns a job_id immediately; get_analysis_results accepts that job_id and returns analysis status or results. The pipeline runs two steps: (1) GEM-1 — Synthesize Bio's Gene Expression Model inference; (2) Differential expression — GPU-accelerated DESeq2 (negative-binomial GLM with Wald test, Cook's outlier filter, and Benjamini-Hochberg padj). All genes are tested; pre-filtering is handled by DESeq2's independent filtering. If the query is unsupported, later polling responses include failure_kind `unsupported_query` and suggested_queries. Quota and monthly-limit errors include a request-higher-limits URL; a previous successful resolve does not grant an extra run when the account is out of budget. |
| `SYNTHESIZE_BIO_MCP_GET_ANALYSIS_RESULTS` | Get analysis results | Polls the status of a gene expression analysis. Each call waits server-side for a short bounded window and may return earlier if progress is detected. Responses always include a `structuredContent` object (declared by the tool's `outputSchema`); MCP clients read from `structuredContent` directly rather than re-parsing JSON out of the human-readable text. `structuredContent` always has `status` (one of `running`, `complete`, `failed`), `job_id`, and `steps_completed`. While running, it also has `step` (`gem_model` or `diff_expr`), `message`, and `progress_label`/`progress_percent`/`progress_bar`. Failed responses include `error`, and may also include `failure_kind`, `user_action_required`, and `suggested_queries`. When `status` is `complete`, `structuredContent` carries: `metadata` (prompt, modality, groups, plus summary counts such as `significant_genes`, `significant_up`, `significant_down`, `total_genes_tested`); `results` — up to 1000 differential expression rows (each with `gene_id`, `gene_symbol`, `log2FoldChange`, `pvalue`, `padj`, `neg_log10_padj` (pre-computed `-log10(padj)`, clamped to 300 if padj underflows), `direction`, `significant`) suitable for downstream analysis or visualization (e.g. a volcano plot with x = `log2FoldChange`, y = `neg_log10_padj`); `plot_results` — the top ~200 most significant rows (same per-row shape, pre-sorted most-significant-first), pre-sliced for charting; the full `results` array is better suited to tables, summaries, and analysis; `results_returned` and `results_total` for truncation accounting; `plot_results_returned` for the plotted subset size; `dataset_link` — `{ dataset_id, title, url }` for the Synthesize Bio platform dataset (or `null`). The accompanying `content[0].text` is a human-readable Markdown summary of the same data. For hosts that do not surface `structuredContent` (e.g. claude.ai), it inlines only the top ~200 most significant rows as an array of objects under a top-level `results` key — same per-row schema as `structuredContent.results`, including the pre-computed `neg_log10_padj` field — so chart-widget code can use those rows directly. The full result set remains available via `structuredContent.results` and the dataset link when present. |
| `SYNTHESIZE_BIO_MCP_GET_COUNTS_DATA_URL` | Get counts data url | Returns a presigned S3 URL to download the raw gene expression counts data (JSON) produced by a completed or in-progress analysis job. The data is typically large (20,000+ genes by N samples) and requires an environment with direct network access. The JSON has the following structure: { gene_order: string[] (Ensembl IDs), outputs: [{ counts: number[], metadata: object }], model_version: string }. Each entry in 'outputs' corresponds to one sample; 'counts' is aligned with 'gene_order'. The response also returns a second presigned URL to a small (~500 KB) Parquet file mapping every Ensembl `gene_id` in `gene_order` to its HGNC gene_name — both files join on gene_id to label genes by symbol. Both URLs expire after 1 hour; fresh responses contain fresh URLs. Available after analyze_gene_expression has completed the GEM-1 step. |
| `SYNTHESIZE_BIO_MCP_GET_METADATA_SCHEMA` | Get metadata schema | Returns the structured-metadata schema used to turn a natural-language experiment description into sample groups. Response fields include `group_schema` (the JSON shape of one sample group), the `fields` and `perturbation_fields` inventory for the active metadata version, and `instructions` for building the `groups` array. The resulting `groups` array is the input to resolve_sample_metadata. This tool makes no AI calls and consumes no usage budget. |
| `SYNTHESIZE_BIO_MCP_RESOLVE_SAMPLE_METADATA` | Resolve sample metadata | Deterministically harmonizes already-structured sample `groups` to Synthesize Bio's controlled ontology vocabulary. Does not accept a natural-language prompt and makes no AI calls. Input: `groups` — a JSON array of sample-group objects matching get_metadata_schema's `group_schema`. Returns a resolution_id and a per-group breakdown including tissue, disease, cell type/line (with resolved ontology ids), sex, age, and full perturbation details (type, label/id, gene mechanism and mechanism type, dose, dose count, timepoint). Each resolved field also carries ranked candidate options for disambiguation. If a value resolves to the wrong id, correcting the term in `groups` and calling again produces a new resolution. The `warnings` array flags issues such as a described drug that did not match the ontology. When status is `resolving`, the same resolution_id identifies the pending request and can be passed again to poll. A completed resolution_id is required by analyze_gene_expression. Optional workspace_id selects which workspace the resolution is stored under. When omitted, a single-workspace account is assigned automatically. When the account has more than one workspace and workspace_id is omitted, the call is rejected with failure_kind `workspace_selection_required` and a `workspaces` list of `{ name, workspace_id }`; no metadata resolution runs until the user picks and the tool is retried with workspace_id. Quota and monthly-limit errors include a request-higher-limits URL and indicate remaining samples/cells when available. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Synthesize Bio MCP server provides comprehensive access to Synthesize Bio operations through Composio. Once connected, Hermes can perform all major Synthesize Bio actions on your behalf using natural language commands.

## Complete Code

None listed.

## Conclusion

### Way Forward
With Synthesize Bio connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.
From here, you can extend Hermes further:
- Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
- Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
- Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.
If you run into trouble or want to share what you've built, join the [community](https://discord.com/invite/composio) or check out the [Docs](https://docs.composio.dev?utm_source=toolkits&utm_medium=framework_template&utm_campaign=hermes&utm_content=docs) for deeper configuration options.

## How to build Synthesize Bio MCP Agent with another framework

- [ChatGPT Work](https://composio.dev/toolkits/synthesize_bio_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/synthesize_bio_mcp/framework/claude-cowork)

## Related Toolkits

- [Composio](https://composio.dev/toolkits/composio) - Composio is an integration platform that connects AI agents with hundreds of business tools. It streamlines authentication and lets you trigger actions across services—no custom code needed.
- [Composio search](https://composio.dev/toolkits/composio_search) - Composio search is a unified web search toolkit spanning travel, e-commerce, news, financial markets, images, and more. It lets you and your apps tap into up-to-date web data from a single, easy-to-integrate service.
- [Perplexityai](https://composio.dev/toolkits/perplexityai) - Perplexityai delivers natural, conversational AI models for generating human-like text. Instantly get context-aware, high-quality responses for chat, search, or complex workflows.
- [Browser tool](https://composio.dev/toolkits/browser_tool) - Browser tool is a virtual browser integration that lets AI agents interact with the web programmatically. It enables automated browsing, scraping, and action-taking from any AI workflow.
- [Ai ml api](https://composio.dev/toolkits/ai_ml_api) - Ai ml api is a suite of AI/ML models for natural language and image tasks. It provides fast, scalable access to advanced AI capabilities for your apps and workflows.
- [Aivoov](https://composio.dev/toolkits/aivoov) - Aivoov is an AI-powered text-to-speech platform offering 1,000+ voices in over 150 languages. Instantly turn written content into natural, human-like audio for any application.
- [All images ai](https://composio.dev/toolkits/all_images_ai) - All-Images.ai is an AI-powered image generation and management platform. It helps you create, search, and organize images effortlessly with advanced AI capabilities.
- [AltTextLab](https://composio.dev/toolkits/alt_text_lab) - AltTextLab is an AI service that generates accessible, SEO-aware alt text for images. It helps teams make image content easier to understand, index, and publish.
- [Anthropic administrator](https://composio.dev/toolkits/anthropic_administrator) - Anthropic administrator is an API for managing Anthropic organizational resources like members, workspaces, and API keys. It helps you automate admin tasks and streamline resource management across your Anthropic organization.
- [Api labz](https://composio.dev/toolkits/api_labz) - Api labz is a platform offering a suite of AI-driven APIs and workflow tools. It helps developers automate tasks and build smarter, more efficient applications.
- [Apiframe](https://composio.dev/toolkits/apiframe) - Apiframe is an API platform for generating and managing AI images, videos, music, uploads, assets, jobs, and custom LoRAs. It gives developers one clean API for creative AI workflows without juggling multiple model providers.
- [Apipie ai](https://composio.dev/toolkits/apipie_ai) - Apipie ai is an AI model aggregator offering a single API for accessing top AI models from multiple providers. It helps developers build cost-efficient, latency-optimized AI solutions without juggling multiple integrations.
- [Arize AX](https://composio.dev/toolkits/arize_ax) - Arize AX is an AI engineering platform for tracing, evaluating, and improving AI applications. Use it to debug LLM behavior, compare experiments, and improve production AI quality.
- [Artificial Analysis](https://composio.dev/toolkits/artificial_analysis) - Artificial Analysis is an independent benchmarking platform for AI models and API providers. Use it to compare model intelligence, coding, math, pricing, latency, throughput, and arena rankings.
- [AssemblyAI](https://composio.dev/toolkits/assemblyai) - AssemblyAI is a speech-to-text and audio intelligence API for uploaded or hosted media. Use it to turn audio and video into accurate transcripts, summaries, and insights.
- [Astica ai](https://composio.dev/toolkits/astica_ai) - Astica ai provides APIs for computer vision, NLP, and voice synthesis. Integrate advanced AI features into your app with a single API key.
- [Avoma](https://composio.dev/toolkits/avoma) - Avoma is an AI meeting assistant for recording, transcribing, analyzing, and managing meetings, calls, notes, scorecards, and conversation intelligence. It helps teams turn conversations into searchable notes, follow-ups, coaching insights, and revenue intelligence.
- [Bigml](https://composio.dev/toolkits/bigml) - BigML is a machine learning platform that lets you build, train, and deploy predictive models from your data. Its intuitive interface and robust API make machine learning accessible and efficient.
- [Bland AI](https://composio.dev/toolkits/bland_ai) - Bland AI is a conversational AI platform for building voice agents, phone calls, messaging, and communication workflows. Use it to automate calling, evaluate conversations, and run voice operations at scale.
- [Botbaba](https://composio.dev/toolkits/botbaba) - Botbaba is a platform for building, managing, and deploying conversational AI chatbots across messaging channels. It streamlines chatbot automation, making it easier to integrate AI into customer interactions.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Synthesize Bio MCP?

With a standalone Synthesize Bio MCP server, the agents and LLMs can only access a fixed set of Synthesize Bio tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Synthesize Bio and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Hermes?

Yes, you can. Hermes fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Synthesize Bio tools.

### Can I manage the permissions and scopes for Synthesize Bio while using Tool Router?

Yes, absolutely. You can configure which Synthesize Bio scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Synthesize Bio data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
