SMC-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SMC-MCPRun a full SMC read on XAUUSD on the 1h"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SMC-MCP — Smart-Money-Concepts for AI agents
Give Claude, Cursor, or any MCP client the ability to read price action like a smart-money trader — market structure (BOS / CHoCH), order blocks, fair value gaps, and liquidity sweeps — for stocks, forex, gold, indices, and crypto.
No API key. No paid data feed. Ask in plain English:
"Run a full SMC read on XAUUSD on the 1h." "Are there any unmitigated bullish order blocks on EURUSD?" "Did BTCUSD sweep liquidity above the recent high?"
Every other finance MCP server fetches stock prices and standard indicators. This one speaks the language traders actually use: order blocks, FVGs, BOS, CHoCH, liquidity grabs.
30-second setup (Claude Desktop)
git clone https://github.com/AkhileshSelvan/smc-mcp.git
cd smc-mcp
pip install -e .Add this to your claude_desktop_config.json
(Claude → Settings → Developer → Edit Config):
{
"mcpServers": {
"smc": {
"command": "python",
"args": ["-m", "smc_mcp"]
}
}
}Restart Claude Desktop. You'll see the smc tools appear. Done.
Works the same in any MCP client (Cursor, Claude Code, etc.) — point it at
python -m smc_mcpover stdio.
Related MCP server: FinanceKit MCP
Tools
Tool | What it does |
| Swing points, BOS / CHoCH events, current trend bias |
| Order blocks tied to structure breaks, with mitigation state |
| Three-candle imbalances and whether they're filled |
| Swing highs/lows wicked through and rejected (stop hunts) |
| All of the above in one combined, plain-English read |
Every tool accepts:
symbol—AAPL,XAUUSD,EURUSD,BTCUSD,SPX… (trader shorthand is auto-translated)interval—5m,15m,30m,1h,1d,1wklimit— number of recent candles (20–1000)lookback— swing sensitivity (higher = only major swings)response_format—markdown(human read) orjson(machine-readable zones)
What the concepts mean
BOS (Break of Structure) — price closes through a swing with the trend: a continuation signal.
CHoCH (Change of Character) — price closes through a swing against the trend: the first hint of a reversal.
Order block — the last opposite-colour candle before an impulsive move; an institutional footprint and a common entry zone.
Fair value gap — a three-candle imbalance price often returns to rebalance.
Liquidity sweep — a wick beyond an obvious swing that takes stops, then closes back (distinct from a BOS, which closes through).
Run the tests
pip install -e ".[dev]"
python tests/test_smc.py # or: python -m pytest tests/ -qThe core logic is pure Python over OHLC arrays (in src/smc_mcp/smc/), unit-
tested with hand-built series, and free of look-ahead bias — swings are only
used once their fractal has fully formed.
Roadmap
Multi-timeframe confluence (HTF bias + LTF entry)
Premium/discount (equilibrium) zones
ccxtdata source for exchange-native crypto candlesOptional MT5 data bridge for broker-accurate forex
Prop-firm risk-gate tool (position size vs. drawdown rules)
Contributions and issues welcome.
Disclaimer
This software provides data analysis, not financial advice. Markets carry risk; validate every signal on your own charts and never trade on a tool's output alone.
License
MIT — see LICENSE.
Available Tools
5 toolssmc_find_fair_value_gapsARead-onlyIdempotent
Find fair value gaps — three-candle imbalances price tends to rebalance.
Reports each gap's zone, direction, and whether it has been filled. Unfilled gaps act as magnets and make natural entry or target zones.
Returns (JSON mode): {"symbol","interval", "fair_value_gaps": [{"index","top","bottom","kind","filled", "filled_index","time"}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint) cover safety, and description adds output structure and conceptual behavior (gaps rebalance). No contradictions, but the behavioral disclosure is adequate given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, with two short paragraphs and a returns line. Every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with a clear output shape described in the description. Annotations cover safety. Given the low complexity, the description is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides full descriptions for all five parameters, so the tool description does not need to repeat them. The description adds no parameter semantics beyond the schema, but schema coverage is high, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it finds fair value gaps (three-candle imbalances) and reports zone, direction, and filled status. Differentiates from sibling tools like order blocks or liquidity sweeps by focusing on gaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains that unfilled gaps act as magnets and make natural entry or target zones, providing clear context for when to use the tool. However, it does not explicitly state when not to use it or compare to siblings beyond naming them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smc_find_liquidity_sweepsARead-onlyIdempotent
Find liquidity sweeps — swing highs/lows wicked through and rejected.
A sweep takes stops resting beyond an obvious swing, then price closes back on the original side. Often precedes a reversal, and distinct from a BOS (which closes through the level).
Returns (JSON mode): {"symbol","interval", "liquidity_sweeps": [{"index","swept_level","swept_swing_index", "kind","time"}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds value by explaining the sweep concept, output format, and distinction from BOS, providing behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: three sentences plus a returns format example. It front-loads the purpose and is well-structured with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, annotations, and output schema example, the description covers the core concept and output but lacks parameter details and usage guidance, making it moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has multiple parameters with descriptions, but the tool description does not mention any of them, leaving the agent without guidance on how to use parameters like symbol, interval, or lookback. Schema description coverage is 0% from the description's perspective.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds liquidity sweeps and explains the concept, but does not explicitly differentiate from sibling tools like smc_find_fair_value_gaps or smc_get_market_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that sweeps often precede reversals and are distinct from BOS, hinting at usage for reversal detection, but it lacks explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smc_find_order_blocksARead-onlyIdempotent
Find order blocks — the last opposite candle before a structure break.
Each block is the institutional footprint before an impulsive move, reported with its zone (top/bottom), direction, and whether price has since mitigated (revisited) it. Unmitigated blocks are the ones traders usually watch.
Returns (JSON mode): {"symbol","interval", "order_blocks": [{"index","top","bottom","kind","break_index", "mitigated","mitigated_index","time"}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations by explaining the concept of order blocks, mitigation, and the output structure. Annotations already declare readOnlyHint, idempotentHint, etc., so the description enriches behavioral understanding without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core definition and purpose, then briefly explaining the concept and output format. It is not verbose but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema (implied by context signals), the description sufficiently explains the tool's purpose and output. The annotations cover safety aspects, making the description adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes descriptions for each parameter (symbol, interval, etc.), so the tool description does not need to repeat them. The description adds a partial output schema example but does not enhance parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds order blocks, defines them as 'the last opposite candle before a structure break,' and lists the returned data fields. This distinguishes it from sibling tools which focus on fair value gaps, liquidity sweeps, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for identifying order blocks in trading analysis and notes that unmitigated blocks are typically watched, but it does not provide explicit guidance on when to use this tool versus alternatives like smc_find_fair_value_gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smc_full_analysisARead-onlyIdempotent
Run every SMC tool and return one combined, plain-English read.
Combines market structure, order blocks, fair value gaps, and liquidity sweeps into a single narrative plus the current price and bias — the fastest way to get a complete picture in one call.
Returns (JSON mode): {"symbol","interval","last_price","bias", "events","order_blocks","fair_value_gaps","liquidity_sweeps"} where each list matches the per-tool JSON schema.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that it combines multiple tools and returns a specific JSON structure, which is useful context but not critical beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with no unnecessary words. It front-loads the main purpose and then details the return structure in a clear bullet-like format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's composite nature, input parameters implicitly, and return structure explicitly. For a tool that aggregates multiple analyses, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is 'params', which is a nested object with well-described properties in the schema. The tool description adds no additional semantics for parameters. Given schema coverage is 0% at top level but internally detailed, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs every SMC tool and returns a combined plain-English read. It lists the return fields and distinguishes from sibling tools which are individual analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions it as the fastest way to get a complete picture, implying when to use it. It doesn't explicitly state when to avoid it or name alternatives, but the sibling context makes the differentiation clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smc_get_market_structureARead-onlyIdempotent
Read market structure: swing points, BOS/CHoCH events, and trend bias.
Returns the chronological sequence of structure breaks and the current directional bias (bullish / bearish / neutral) for the requested instrument and timeframe.
Returns (JSON mode): {"symbol", "interval", "bias", "events": [{"index","price","event","direction","time"}], "swing_count"}.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description reinforces that it is a read operation ('Read market structure') and details the return format, adding value beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two paragraphs: the first states the purpose, the second describes the return format. No unnecessary words, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a pseudo-schema for the JSON return, which is helpful given an output schema exists. However, it fails to explain the parameters, which are numerous and have no schema descriptions. For a tool with 5 parameters and 0% schema coverage, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description does not describe any parameters. The input schema has five parameters (symbol, interval, limit, lookback, response_format) but the description only mentions the output. This is a significant gap for a tool with 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads market structure, specifically swing points, BOS/CHoCH events, and trend bias. It distinguishes itself from sibling tools (e.g., smc_find_fair_value_gaps) by focusing on core structure rather than specific patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for obtaining overall market structure and directional bias. It does not explicitly state when to use or when not to use this tool versus alternatives, but the context of siblings and the description's focus on structure provides sufficient clue for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct SMC concept: fair value gaps, liquidity sweeps, order blocks, market structure, and a combined analysis. No overlap in purpose.
All tools use a consistent 'smc_' prefix followed by 'find_' or 'get_' verbs, with 'smc_full_analysis' as a slight exception but still follows the same pattern. Naming is predictable and uniform.
Five tools is an appropriate size for a focused SMC analysis server. Each tool covers a core concept without being too few or too many.
The tool set covers the main SMC components: market structure, order blocks, fair value gaps, and liquidity sweeps. A combined analysis tool ties them together. Minor gap: no explicit 'change in character' detection, but it's included in market structure events.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
LuxAlgo Library — the encyclopedia of trading & technical analysis for AI agents. Free, keyless.
Pay-per-call trading intelligence for AI agents: live market regime, trading signals, composite conv
Related MCP Servers
- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.91675MIT
- AlicenseAqualityCmaintenanceProvides AI agents with real-time financial market intelligence including stock quotes, crypto data, technical analysis, and portfolio insights. Enables natural language queries for current prices, technical indicators, asset comparisons, and portfolio analysis.176MIT
- AlicenseBqualityCmaintenanceComputes structured market-structure features (liquidity zones, fair value gaps, order blocks, break of structure) from live Bybit data and exposes them as typed MCP tools for AI agents.5MIT

oneqaz-trading-mcpofficial
AlicenseNot gradedqualityCmaintenanceProvides AI agents with real-time financial market intelligence including regime detection, adaptive signals, macro context chains, and cross-market analysis for crypto, US, and Korean stocks.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AkhileshSelvan/smc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server