smallcase-mcp
Click on "Deploy 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., "@smallcase-mcpfind low-volatility gold smallcases under ₹5000"
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.
smallcase-mcp
⚠️ UNOFFICIAL — this is NOT the official smallcase MCP
This is an independent, community-built project. It is NOT built, authorized, endorsed, sponsored, or supported by smallcase, it is NOT "the smallcase MCP," and it uses no official smallcase API. "smallcase" is a trademark of its respective owner. It reads smallcase's public website endpoints (not the official smallcase Gateway API), which can change or break at any time. Provided for informational/research use only — not investment advice, and not an official data source. Some data (notably past returns) is shown in smallcase's own UI behind a consent step ("as per applicable guidelines"); use at your own discretion. All data © smallcase and the respective publishers.
A read-only MCP server that exposes smallcase's public discovery data — the catalog of published smallcases, their returns, risk metrics, rationale, rebalance schedule, plus stocks, mutual funds and curated collections — to any LLM or agent (Claude Desktop, Claude Code, Cursor, …).
No API key. No browser. No login. Just clean HTTP over the endpoints the public smallcase.com website already calls for logged-out visitors.
What it can and can't do
✅ Available (public) | ❌ Not available (gated by smallcase) |
Search/list the full catalog of published smallcases | Constituents / holdings + weights |
CAGR, returns (1D → 5Y, since inception) | Rebalance constituent history |
Risk metrics (volatility, sharpe, beta, cap split, 52w hi/lo) | Your personal portfolio / investments |
Minimum investment, monthly subscription price | Placing orders / any transaction |
Rationale, rebalance schedule, publisher info |
Related MCP server: fintablo-mcp
Tools
Tool | Description |
| Search/screen published smallcases. Text match on name/description/publisher, |
| Full detail for one smallcase by SCID (e.g. |
| Side-by-side of 2–5 smallcases (returns / risk / min investment). |
| Rebalance cadence and last/next rebalance dates for a smallcase. |
| List smallcase publishers / research houses. |
| Search stocks in smallcase's public universe (name / ticker / sector). |
| Search mutual funds (name / AMC / category). |
| List curated smallcase collections (themed groupings). |
Example prompts once connected: "find low-volatility gold smallcases under ₹5000", "compare SCET_0005 and the top smallcase by returns", "what's the rationale behind SCET_0005?", "when does SCET_0005 next rebalance?", "search bank stocks", "show me energy mutual funds".
Install
The package is on PyPI — no clone, no
path, no API key. Any MCP client can launch it with uvx.
Claude Code (one-liner)
claude mcp add -s user smallcase -- uvx smallcase-mcp@latestClaude Desktop
{
"mcpServers": {
"smallcase": {
"command": "uvx",
"args": ["smallcase-mcp@latest"]
}
}
}Any other MCP client
Point it at the stdio command:
uvx smallcase-mcp@latest makes uvx resolve the newest release instead of reusing a cached one.
Development
Only needed if you want to hack on the server itself:
git clone https://github.com/Pragadeesh122/smallcase-mcp.git
cd smallcase-mcp
uv sync
uv run python tests/test_live.py # live-API checks
uv run python tests/test_mcp_protocol.py # full MCP handshake over stdioTo run your local checkout as the server instead of the PyPI build:
claude mcp add -s user smallcase -- uv --directory /path/to/smallcase-mcp run smallcase-mcpStack
Python 3.11+ · MCP Python SDK (FastMCP) · httpx.
License
MIT. Not affiliated with smallcase. See the notice at the top of this file and in the LICENSE.
Available Tools
8 toolscompare_smallcasesB
Compare 2-5 smallcases side by side (returns, risk, minimum investment).
Args: scids: List of 2-5 SCIDs, e.g. ["SCET_0005", "SCSB_0001"].
| Name | Required | Description | Default |
|---|---|---|---|
| scids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states 'compare' but does not clarify whether the operation is read-only, safe, or requires any authentication. No mention of side effects or return format.
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 short and front-loaded with the core purpose in a single sentence, followed by a clear parameter explanation. Every word earns its place, though the SCID example could be integrated more efficiently.
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 tool has no output schema, yet the description does not describe the format of the comparison results. While it mentions 'returns, risk, minimum investment', it lacks details on how the output is structured (e.g., table, JSON). This is a significant gap for a comparison tool.
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 coverage is 0%, so the description must compensate. It explains 'scids' as a list of 2-5 SCIDs with an example, adding meaning beyond the bare 'array of strings' type. However, it does not define what a SCID is or where to obtain them.
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 compares 2-5 smallcases side by side, specifying metrics (returns, risk, minimum investment) and the number of smallcases. This clearly distinguishes it from sibling tools like get_smallcase (single smallcase) or search_smallcases (searching).
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 comparing multiple smallcases but does not explicitly state when to use this tool versus alternatives like search_smallcases or get_smallcase. No guidance on prerequisites or when to avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rebalance_scheduleA
Rebalance cadence and last/next rebalance dates for a smallcase.
Args: scid: The smallcase id, e.g. "SCET_0005".
| Name | Required | Description | Default |
|---|---|---|---|
| scid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it retrieves data. No disclosure of read-only nature, latency, auth requirements, or side effects.
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 very concise with no extra words. Uses an Args section for clarity. Every sentence contributes value.
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 low complexity (single param, no output schema), description covers purpose and parameter but lacks any information about return format or fields. Could be more complete on output expectations.
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 coverage is 0%, but the description adds a clear example ('SCET_0005') for the scid parameter, explaining its meaning and format. This significantly aids parameter understanding.
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 provides rebalance cadence and last/next rebalance dates for a smallcase. It distinguishes from sibling tools like search_smallcases and get_smallcase by specifying the exact information returned.
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?
No guidance is given on when to use this tool versus alternatives like get_smallcase or compare_smallcases. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_smallcaseA
Full public detail for one smallcase by SCID (e.g. "SCET_0005").
Includes returns across all horizons (1D-5Y, since inception), risk metrics (volatility, sharpe, beta, cap split, 52-week high/low), minimum investment, and index value. Holdings/weights are gated by smallcase and come back empty.
| Name | Required | Description | Default |
|---|---|---|---|
| scid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that holdings/weights are gated and returns empty, which is important. Does not mention auth or error states, but adequate for a read-only tool.
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?
Two sentences, first states purpose, second lists contents. No redundant words; 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?
Covers key return fields (returns, risk metrics, min investment, index value) and notes holdings/weights emptiness. Without output schema, this is sufficient context, though could mention if response is paginated or has limits.
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 has no description for the single parameter; description provides example format ('SCET_0005') and explains it is a SCID, adding semantic value.
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?
Clearly states it retrieves full public detail for one smallcase by SCID, and lists specific fields returned. Differentiates from sibling tools like search_smallcases and compare_smallcases.
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?
Implicitly guides use via the name and description, but lacks explicit when-to-use or when-not-to-use statements. The mention of holdings being empty is a useful caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsA
List curated smallcase collections (themed groupings of smallcases).
Args: query: Optional case-insensitive match on collection name / description. limit: Max results to return (1-50).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'list' which implies read-only, but does not explicitly confirm safety, auth requirements, or side effects. The return format and pagination are also not mentioned.
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 extremely concise: two sentences for purpose and brief Args definitions. No unnecessary words; every sentence adds value.
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 purpose and parameters but lacks details about the return value format (e.g., what fields each collection has) and any ordering or default behavior. Since no output schema exists, this information would be helpful for completeness.
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?
Despite 0% schema description coverage, the description's Args section fully explains the parameters: 'query' is case-insensitive match on name/description, 'limit' is max results 1-50. This provides clear meaning beyond the bare schema types.
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 'List curated smallcase collections (themed groupings of smallcases)' with a specific verb and resource. It distinguishes from siblings like 'search_smallcases' by focusing on collections rather than individual smallcases.
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 used to list themed collections, but it does not explicitly compare with alternatives or provide when-to-use/when-not-to-use guidance. The sibling list is present but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_managersB
List smallcase publishers / managers (the research houses).
Args: page: 1-based page number. page_size: Results per page (1-50).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It only describes parameters and their constraints (page 1-based, page_size 1-50) but does not mention pagination behavior, rate limits, ordering, or error conditions. Critical details are missing.
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 extremely concise: a single sentence for purpose, followed by a clear 'Args' block. Every part is necessary, and it is front-loaded with the main purpose.
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?
Despite low complexity (2 optional params), the description lacks output details. Since no output schema is provided, the agent does not know the response structure (e.g., list of managers, pagination metadata). This limits the tool's completeness.
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 schema has 0% description coverage, but the description adds essential semantics: page is 1-based and page_size has a 1-50 range. This meaningfully supplements the schema definitions.
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 lists smallcase publishers/managers (research houses). It is specific about the resource and action, distinguishing it from sibling tools that deal with smallcases, stocks, or funds.
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?
No guidance is provided on when to use this tool versus its siblings (e.g., search_smallcases, get_smallcase). The description simply states what it does without indicating when it is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mutual_fundsA
Search mutual funds in smallcase's public universe.
Args: query: Case-insensitive match on name / AMC / category (e.g. "DSP", "energy"). limit: Max results to return (1-50).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not reveal behavioral traits such as whether the search is read-only, requires authentication, or any side effects. Only the case-insensitive matching and limit range are mentioned.
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 brief and front-loaded with the purpose, followed by concise parameter explanations. Every sentence adds value, with no fluff or redundancy.
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?
For a simple search tool with two parameters and no output schema, the description covers purpose and parameter meanings adequately. However, it omits details about the response structure (e.g., fields returned) and any pagination beyond the limit parameter, which an agent might need for complete understanding.
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?
With 0% schema description coverage, the description adds significant meaning: it explains that 'query' matches case-insensitively on name/AMC/category with examples, and defines 'limit' as max results with a range. This compensates well for the schema's lack of descriptions.
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 action 'Search', the resource 'mutual funds', and the context 'in smallcase's public universe'. It is specific and distinct from sibling tools like search_smallcases and search_stocks.
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 does not provide explicit guidance on when to use this tool versus alternatives. While the purpose implies it is for mutual funds, there is no mention of scenarios or limitations compared to sibling search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_smallcasesA
Search / screen published smallcases from the public catalog.
Returns each smallcase's name, publisher, CAGR, minimum investment, volatility, monthly subscription price, constituent count, and whether it is private (closed to new investors).
Args: query: Case-insensitive text match on name / description / publisher (e.g. "gold", "momentum", "Windmill"). volatility: Filter by risk band: "low", "medium", or "high". min_amount: Only smallcases with minimum investment >= this (INR). max_amount: Only smallcases with minimum investment <= this (INR). sort: One of "popularity" (default), "min_amount", "returns" (by CAGR, high to low), or "recently_rebalanced". limit: Max results to return (1-50). include_private: Also return schemes closed to new investors (marked private=true). Default False shows only open, discoverable ones.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | popularity | |
| limit | No | ||
| query | No | ||
| max_amount | No | ||
| min_amount | No | ||
| volatility | No | ||
| include_private | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the return shape and parameter effects (e.g., include_private default behavior). It does not mention rate limits or side effects, but for a search tool, this is acceptable.
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 well-structured: a concise purpose statement followed by a bulleted list of parameter details. Every sentence adds value, and the format is easy to parse.
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 complexity (7 parameters, no output schema), the description covers all return fields and parameter options. It also explains the behavior of include_private and the default sort. There is no missing critical information.
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%, so the description must compensate. It provides thorough explanations for all 7 parameters, including valid values (e.g., volatility: low/medium/high), examples (e.g., query: 'gold'), and default behaviors (sort: popularity).
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 'Search / screen published smallcases from the public catalog,' using a specific verb+resource. It also lists the return fields, making it distinct from siblings like get_smallcase (specific smallcase) and compare_smallcases (comparison).
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 usage for searching/screening and contrasts with sibling tools. However, it does not explicitly state when not to use this tool or provide direct alternatives. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stocksA
Search stocks in smallcase's public universe.
Args: query: Case-insensitive match on name / ticker / sector (e.g. "HDFC", "bank"). limit: Max results to return (1-50).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It states case-insensitive matching on name/ticker/sector and a limit range (1-50), but does not mention whether the tool is read-only, authentication needs, or rate limits. For a search tool, this is adequate but not exhaustive.
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 extremely concise, using a clear 'Args' format with no extraneous words. Every sentence adds value.
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 no output schema and no annotations, the description covers the tool's purpose and parameter semantics well. It lacks return value details, but for a search tool, the implied result list is reasonable. Slightly more context on expected output would elevate completeness.
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%, but the description explains both parameters: query (case-insensitive match on name/ticker/sector) and limit (max results 1-50). This adds significant meaning beyond the plain schema.
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 'Search stocks in smallcase's public universe', specifying the verb (search) and resource (stocks). This distinguishes it from sibling tools like search_smallcases and search_mutual_funds.
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 provides examples ('HDFC', 'bank') and mentions case-insensitive matching, implying usage context. However, it lacks explicit guidance on when not to use this tool or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.2.0- First observed
compare_smallcases - First observed
get_rebalance_schedule - First observed
get_smallcase - First observed
list_collections - First observed
list_managers - First observed
search_mutual_funds - First observed
search_smallcases - First observed
search_stocks
TDQS
Scored across 8 tools
Each tool targets a distinct resource or action: searching smallcases, getting details, comparing, listing managers, checking rebalance schedules, and searching assets or collections. No two tools have overlapping functionality.
All tool names follow a consistent verb_noun pattern with underscores (e.g., search_smallcases, get_smallcase, list_managers). The naming is uniform and predictable.
With 8 tools, the server is well-scoped for exploring smallcase investments. Each tool serves a clear purpose without being excessive or insufficient.
The set covers searching, viewing details, comparing, and listing related entities. Minor gaps exist (e.g., no historical performance chart tool, and holdings are gated), but the surface is largely complete for a public catalog.
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
MCP server for querying Forkast documentation
Query OneLens cloud-cost data in natural language: breakdowns, trends, cost centers. Read-only.
Related MCP Servers
- AlicenseAqualityDmaintenanceRead-only MCP server for accessing Wallet by BudgetBakers financial data, allowing users to query accounts, transactions, categories, budgets, and more via natural language.10MIT
- FlicenseBqualityCmaintenanceRead-only MCP server that computes financial answers, such as work-in-progress (NPV), from the Fintablo API using natural language queries.5-
- AlicenseAqualityAmaintenanceRead-only MCP server for Kiwoom Securities, enabling natural language queries of Korean stock market data and account information, including ISA tax status.4966 npm1MIT
- AlicenseAqualityBmaintenanceIndia's first MCP server for Indian equity research, enabling natural language queries on 5,000+ NSE/BSE listed companies directly from Claude.1935 npmMIT