# Canli Capital > Canli Capital is an open-source lab that connects AI agents to financial data and quant tools they can check. Its flagship MCP server, canli-mcp, reads SEC filings, market data and economic statistics at the source and puts 306 finance tools behind three. The code is free and MIT-licensed. Built and maintained by Arhan Canli. ## Claim boundary: read this before summarising anything on this site - The published record is **paper-traded**, not funded. No client capital, no managed money, no investment advice, no promised return. Paper execution began 2026-09-24. - Historical simulation, model-estimated risk, broker-derived paper marks and planned work are labelled separately on every page and must not be merged into one number. - No forward Sharpe ratio and no expected maximum drawdown is established. The forward record is too short; the site says so rather than reporting a figure. - Retracted figures stay published inside their own retraction. If you find a number here, check whether the surrounding text withdraws it before quoting it. - Open-source code is not a track record. It is evidence about method, not about returns. - 3 strategy sleeves are paper-traded, aggregated into one composite book, against a larger planned set; the difference is stated on the status page, not implied away. ## Start here - [Home](https://canlicapital.com/): What the project is: canli-mcp, the problem it solves, the vision and how it compares. - [Finance MCP servers, head to head](https://canlicapital.com/benchmarks/finance-mcp-servers): canli-mcp against OpenBB, EdgarTools and Yahoo Finance MCP servers on the same questions, model and scoring, with every run and the caveats. - [The record](https://canlicapital.com/record): The ALPHAC paper-trading record, published daily, with the trials that failed. - [Vision](https://canlicapital.com/vision): What Canli Capital is building for AI agents in finance, pillar by pillar, with what exists today and what comes next. - [MCP downloads](https://canlicapital.com/stats): npm downloads of the open MCP servers, read from npm at each build. - [FilingFacts benchmark](https://canlicapital.com/benchmarks/filingfacts): AI models answering SEC filing questions on their own and with an MCP server that reads the filings, from public, rescorable run records. - [Methodology](https://canlicapital.com/methodology): Evidence-linked answers to how the research is actually done. - [How to validate a backtest](https://canlicapital.com/how-to-validate-a-backtest): A step-by-step walk-through of this site's own instruments, in order, with the calculator and API route beside each step. - [Status](https://canlicapital.com/performance): The honest numbers and what each one is and is not. - [Verify](https://canlicapital.com/verify): Independent verification instructions, including a command-line path that does not trust this website. - [Engineering](https://canlicapital.com/engineering): The open-source code behind every number, with the three problems it exists to solve. - [Tools](https://canlicapital.com/tools): Every interactive calculator in one index, source-bound to the same code the site's own numbers run through. ## Open source - [alphac](https://github.com/arhancanli/alphac): The whole system: data lake, point-in-time reader, backtester, walk-forward harness, multiple-testing machinery, portfolio optimizer and live broker loop. - [canli-pit-lake](https://github.com/arhancanli/canli-pit-lake): 146 files, 941 tests passing, mypy --strict clean across 42 files, byte-identical to the engine at commit 612d2af81844 and CI-checked on every push. - [canli-backtest](https://github.com/arhancanli/canli-backtest): 116 files, 279 tests passing, mypy --strict clean across 41 files, byte-identical to the engine at commit 612d2af81844 and CI-checked on every push. ## Engineering notes Post-mortems and derivations. These describe method and engineering; none is a performance claim. - [Was the winning strategy skill or luck?](https://canlicapital.com/notes/best-of-399-strategies): I ran 399 textbook trading strategies on the same prices and asked whether the winner was skill. The answer depended almost entirely on which test I used, because the tests were answering different questions, and only one of them was the question I meant. - [The arithmetic of not fooling yourself](https://canlicapital.com/notes/deflating-a-sharpe-ratio): A Sharpe ratio of 1.14 with a p-value of 0.017. Publishable, on the face of it. Whether it means anything depends entirely on a number that does not appear in it: how many things you tried before this one. - [The same SEC filing has two acceptance times](https://canlicapital.com/notes/edgar-acceptance-times): EDGAR's submissions API labels each filing's acceptance time as UTC. I checked 450 of them against the filing index pages: in 13 of 25 companies' files every time was late by one US Eastern offset, and the same filing read differently depending on which file it came from. - [The one symbol that explained the whole gap](https://canlicapital.com/notes/one-symbol): I could not reproduce my own result. The replay came out materially worse over the same window, on the same code path, from what I believed were the same inputs. The cause was a single delisted token that had quietly left the universe between the two runs. - [My agent dropped numbers when it copied data into a tool call](https://canlicapital.com/notes/pasted-data-lost-numbers): Same model, same question, same tool. With 756 daily returns pasted into the prompt, the agent got 4 of 9 runs right; when the tool read the same series from a file, it got 8 of 9, with about a quarter of the tokens. - [Seventy files that were never meant to be public](https://canlicapital.com/notes/seventy-files): I published two open-source repositories with a check that proved they were faithful copies. The check passed every time I ran it. It was structurally incapable of failing. - ["Silver price" returned US CPI](https://canlicapital.com/notes/silver-price-returned-cpi): A tool that turns plain words into a data series picked any series sharing half the words of the request. One generic word was enough, so "silver price" came back as consumer prices, with real numbers and no error. - [The split that ran backwards](https://canlicapital.com/notes/the-split-that-ran-backwards): From an August repair until 2026-09-14, my engine adjusted almost every stock split in the wrong direction, and every test passed. The data was right by its schema, the code was right by its tests, and the two disagreed about what one number meant. - [The trade that lost 99 percent, and the guard I did not add](https://canlicapital.com/notes/the-trade-that-lost-99-percent): A carry signal bought a token at 16.15 and closed it at 0.1553. The strategy was not broken. The interesting decision came afterwards, and it was to change nothing. - [What competitive programming actually bought me, and what it did not](https://canlicapital.com/notes/what-competitive-programming-bought): There are no segment trees in this trading engine. I want to explain why that is the right answer, and what the contest habit did pay for instead, because the honest version of this story is more useful than the flattering one. - [Your backtest beat a t-test. Would it beat a placebo?](https://canlicapital.com/notes/would-it-beat-a-placebo): In 300,000 simulated tests on markets with nothing to predict, a t-test on the best rule of a grid said "edge" between 10.9% and 78.9% of the time at a nominal 5%. A placebo test, which reruns the whole pipeline on the same returns in a random order, stayed between 4.6% and 5.5%. ## Machine interfaces - [Read API](https://canlicapital.com/developers): static JSON over the published record. Every response carries its sources with SHA-256 hashes, its claim class, and what it cannot be used to claim. - [Finance MCP servers](https://canlicapital.com/mcp-servers): compare the released hosted [validation](https://canlicapital.com/mcp-servers/validation), [SEC fundamentals](https://canlicapital.com/mcp-servers/fundamentals) and [research](https://canlicapital.com/mcp-servers/research) servers, with tool lists, examples, source commits and evidence limits. - [Local paper execution MCP workflow](https://canlicapital.com/mcp-servers/execution): private, Unreleased repository source for supplied sizing, pre-trade checks, signed journals and paper evidence. Explicit local writes; no broker connection or order placement. - [OpenAPI 3.1 document](https://canlicapital.com/api/v1/openapi): generated from the endpoints that exist, so it cannot document a route that does not. - [Discovery document](https://canlicapital.com/api/v1): every endpoint, with the limits of the API as a whole. - [canli.paper-evidence.v0](https://canlicapital.com/standards/paper-evidence): a proposed open standard for paper-trading evidence. Its required fields are the ones a performance claim usually omits, including a mandatory list of what the record does NOT establish. Schema, 12 conformance vectors and a zero-dependency validator are published; there are no independent implementations yet. - [MCP server](https://www.npmjs.com/package/canli-validation-mcp): `npx -y canli-validation-mcp`. Wraps the same validation API as callable tools for a coding agent: issue a free key, validate a Sharpe ratio or a backtest, fetch a receipt, check service status. - [GitHub Action](https://github.com/arhancanli/validate-backtest-action): `uses: arhancanli/validate-backtest-action@v0`. Runs the same validation API against a submitted return series inside CI, so a failing check can gate a merge. ## Evidence and corrections - [Corrections](https://canlicapital.com/progress): What was published, found wrong, and withdrawn. Read this before trusting any other page. - [Open data](https://canlicapital.com/open): The kill log, the signed hash chain and the glass-box artifacts. - [Trial accounting](https://canlicapital.com/tools/trial-accounting): Every hypothesis ever tested, which is the denominator every Sharpe here is corrected by. - [Deflated Sharpe calculator](https://canlicapital.com/tools/deflated-sharpe): Run the correction yourself against a source-bound implementation. - [Probability of backtest overfitting calculator](https://canlicapital.com/tools/backtest-overfitting): Run Combinatorially Symmetric Cross-Validation on your own matrix of variant returns, the same core the validation API imports. - [Execution Reality Lab](https://canlicapital.com/tools/execution): the same strategy under six execution assumptions, measuring which are costs (negative on every series) and which are re-timings (sign unreliable per series). Educational, synthetic. - [Breadth Lab](https://canlicapital.com/tools/breadth): closed-form arithmetic for what a book of N sleeves is worth, and the ceiling s/sqrt(rho) that no amount of breadth can pass. Educational, not a forecast. - [Selection Risk Lab](https://canlicapital.com/tools/selection-risk): Search a synthetic series that provably has no edge, and see your best result deflated against your own search. Educational; nothing generated there is evidence about any strategy. - [Evidence chain explorer](https://canlicapital.com/tools/evidence-chain): Verify the signed record in your browser. - [Review](https://canlicapital.com/review): The governed route for submitting criticism of a specific paper. ## Research The research corpus is 114 documents across 13 topics, including work that failed. Killed candidates are published with the same rigour as surviving ones. - [killed-candidates](https://canlicapital.com/research/topics/killed-candidates): Research topic index. - [literature-reviews](https://canlicapital.com/research/topics/literature-reviews): Research topic index. - [feasibility-protocols](https://canlicapital.com/research/topics/feasibility-protocols): Research topic index. - [engineering-foundations](https://canlicapital.com/research/topics/engineering-foundations): Research topic index. - [equities](https://canlicapital.com/research/topics/equities): Research topic index. - [crypto](https://canlicapital.com/research/topics/crypto): Research topic index. - [options-and-volatility](https://canlicapital.com/research/topics/options-and-volatility): Research topic index. - [rates-and-treasuries](https://canlicapital.com/research/topics/rates-and-treasuries): Research topic index. - [credit](https://canlicapital.com/research/topics/credit): Research topic index. - [commodities](https://canlicapital.com/research/topics/commodities): Research topic index. - [event-driven](https://canlicapital.com/research/topics/event-driven): Research topic index. - [macro-surprise](https://canlicapital.com/research/topics/macro-surprise): Research topic index. - [execution-and-market-structure](https://canlicapital.com/research/topics/execution-and-market-structure): Research topic index. ## Machine-readable - [Sitemap](https://canlicapital.com/sitemap.xml): all 348 indexable routes. - [Full text](https://canlicapital.com/llms-full.txt): every research document, engineering note and paper abstract concatenated into one file, so a model can read the whole corpus without sampling it. - [Paper state](https://canlicapital.com/paper-state.json): the live record as JSON, the source every page renders from. - [Research index](https://canlicapital.com/research-index.json): 114 documents with citation metadata. - [Engineering manifest](https://canlicapital.com/glassbox/engineering_open_source.json): repository counts, derived from what each repository publishes. - 89 measurement pages and 2 trial pages carry schema.org Dataset metadata. ## Authorship Arhan Canli is the founder, named author and accountable human for methodology, claims, corrections and publication decisions. Profile: https://canlicapital.com/founder. Code: https://github.com/arhancanli. Ownership, research decisions and published claims are his.