> ## Documentation Index
> Fetch the complete documentation index at: https://docs.itoflow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Research with your own code and tools

> Connect your GitHub repositories and your own MCP servers, then ask Itoflow's research agent to run your code on Itoflow's data, change it and open a pull request, or call your own tools in its research. Tokens never reach the model or the sandbox.

Itoflow's research agent can work in your GitHub repositories and call tools on your own MCP servers, beside Itoflow's engine and data. Your models stay in your code, your tools stay on your servers, and the agent brings the data, the tests and the review.

**What you'll get:** research that runs your own code or calls your own tools, and, when you ask, a draft pull request in your repository with the change and its results.

## Before you start

* [Connect GitHub](https://docs.itoflow.ai/features/integrations.md#github) and choose which repositories Itoflow can see, or [add an MCP server](https://docs.itoflow.ai/features/integrations.md#remote-mcp-servers) by its URL.

## Try it

> [tab] Ask your AI assistant
>
> With [Itoflow connected to your assistant](https://docs.itoflow.ai/mcp/install.md), paste this into your assistant:
>
> ```text theme={null}
> Use Itoflow with my GitHub repository OWNER/REPO. Check out the default
> branch, read the README, and run the backtest in PATH on Itoflow's daily
> prices for the same symbols and dates. Compare its results with a
> walk-forward test on Itoflow's engine with trading costs, and explain any
> gap. Then change the backtest to read Itoflow's prices, run the repository's
> tests, and draft a pull request with the change and a summary of the
> results. Show me the diff before you open the pull request, and wait for the
> research to finish.
> ```
>
> > [card] [Open in Claude](https://claude.ai/new?q=Use%20the%20Itoflow%20plugin%20\(https%3A%2F%2Fgithub.com%2Fitoflow%2Fskills\)%20for%20this.%20If%20it%20isn't%20installed%20yet%2C%20first%20tell%20me%20how%20to%20install%20it%20and%20sign%20in%20to%20Itoflow%2C%20and%20wait%20until%20I%20confirm.%20Then%3A%0A%0AUse%20Itoflow%20with%20my%20GitHub%20repository%20OWNER%2FREPO.%20Check%20out%20the%20default%20branch%2C%20read%20the%20README%2C%20and%20run%20the%20backtest%20in%20PATH%20on%20Itoflow's%20daily%20prices%20for%20the%20same%20symbols%20and%20dates.%20Compare%20its%20results%20with%20a%20walk-forward%20test%20on%20Itoflow's%20engine%20with%20trading%20costs%2C%20and%20explain%20any%20gap.%20Then%20change%20the%20backtest%20to%20read%20Itoflow's%20prices%2C%20run%20the%20repository's%20tests%2C%20and%20draft%20a%20pull%20request%20with%20the%20change%20and%20a%20summary%20of%20the%20results.%20Show%20me%20the%20diff%20before%20you%20open%20the%20pull%20request%2C%20and%20wait%20for%20the%20research%20to%20finish.)
> >
> > Start this in Claude with the Itoflow plugin.
>
> > [card] [Open in ChatGPT](https://chatgpt.com/?q=Use%20the%20Itoflow%20plugin%20\(https%3A%2F%2Fgithub.com%2Fitoflow%2Fskills\)%20for%20this.%20If%20it%20isn't%20installed%20yet%2C%20first%20tell%20me%20how%20to%20install%20it%20and%20sign%20in%20to%20Itoflow%2C%20and%20wait%20until%20I%20confirm.%20Then%3A%0A%0AUse%20Itoflow%20with%20my%20GitHub%20repository%20OWNER%2FREPO.%20Check%20out%20the%20default%20branch%2C%20read%20the%20README%2C%20and%20run%20the%20backtest%20in%20PATH%20on%20Itoflow's%20daily%20prices%20for%20the%20same%20symbols%20and%20dates.%20Compare%20its%20results%20with%20a%20walk-forward%20test%20on%20Itoflow's%20engine%20with%20trading%20costs%2C%20and%20explain%20any%20gap.%20Then%20change%20the%20backtest%20to%20read%20Itoflow's%20prices%2C%20run%20the%20repository's%20tests%2C%20and%20draft%20a%20pull%20request%20with%20the%20change%20and%20a%20summary%20of%20the%20results.%20Show%20me%20the%20diff%20before%20you%20open%20the%20pull%20request%2C%20and%20wait%20for%20the%20research%20to%20finish.)
> >
> > Start this in ChatGPT with the Itoflow plugin.
>
> Using another client? Copy the prompt with the button on the code block.
>
> Replace `OWNER/REPO` with your repository and `PATH` with the backtest's path in it.

> [tab] In the Itoflow app
>
> 1. Under [Integrations](https://app.itoflow.ai/integrations), connect GitHub or add your MCP server.
> 2. Open [Chat](https://app.itoflow.ai/chat) and name the repository, file or tool to use, and what to do with it.
> 3. To review the change first, ask the agent to show the diff before it opens the pull request, and to open it as a draft.

To keep code and data on your own machine instead, use the [local worker](https://docs.itoflow.ai/mcp/usage.md#work-with-your-local-agent): Itoflow plans the analysis and your local Codex or Claude Code session runs each step.

## What you get back

The finished turn holds the code the agent ran, its output and the files it changed, with a link to the pull request. Asked for a draft, the agent opens one. Your branch protection still applies.

With your own MCP server, the agent finds the tools it needs in the server's catalog, calls them, and uses what they return in its research. [Analyze your Interactive Brokers portfolio](https://docs.itoflow.ai/use-cases/interactive-brokers-risk.md) walks through one: IBKR's own server reads your positions, and Itoflow's risk model measures them.

## How it's kept safe

[How we connected customers' MCP servers and GitHub repos to our research agent](https://itoflow.ai/blog/how-we-connected-mcp-servers-and-github), October 7, 2026, explains the design:

* **Tokens stay out.** The model and the sandbox never see a token. Credentials are added outside the sandbox after Itoflow checks you own the connection.
* **Narrow GitHub access.** The GitHub app asks only for code, pull requests and CI results: no workflows, admin rights or secrets.
* **Outside text is data.** Text from a repository or a tool counts as untrusted input, not as instructions.
* **Merges only when you ask.** The agent merges a pull request only when you ask it to merge that one, and GitHub's required checks still apply.
* **No blind repeats.** A write whose outcome is unknown is reported as unknown and never sent twice.
* **Tools stay out of the way.** A server's tools sit in a catalog the agent searches, so a server with dozens of tools doesn't crowd the model's context.

## Limits

* An MCP server needs a public HTTPS URL and Streamable HTTP. It signs in with OAuth or a bearer token.
* If a server's tool catalog can't be read, its tools may be missing from a turn. Reconnect when the connection says sign-in is required.

## Next steps

* [Connect GitHub and MCP servers](https://docs.itoflow.ai/features/integrations.md): every endpoint.
* [How Itoflow works](https://docs.itoflow.ai/platform/how-itoflow-works.md#your-code-your-data-your-models): how your code, data and models plug in.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.