Kite Connect MCP Server
Provides tools to place market buy and sell orders on NSE via Zerodha's Kite Connect API.
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., "@Kite Connect MCP ServerBuy 1 share of INFY"
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.
Kite Connect MCP POC
A proof-of-concept TypeScript MCP server that demonstrates how MCP tools can call Kite Connect APIs over stdio. This project is intentionally incomplete and focuses on proving the primary concept rather than providing a production-ready trading integration.
Features
greet: returns a greeting for a provided name.add_two_numbers: adds two numbers.factorial: calculates the factorial of a non-negative integer.buy_stock: places a Kite Connect market buy order on NSE.sell_stock: places a Kite Connect market sell order on NSE.
Related MCP server: NSE-BSE MCP Server
Prerequisites
Node.js
pnpm
A Zerodha Kite Connect API key
A valid Kite Connect access token
Setup
Install dependencies:
pnpm installCreate a .env file in the project root:
KITE_API_KEY=your_api_key
KITE_ACCESS_TOKEN=your_access_tokenRun
Start the MCP server:
pnpm devThe server uses stdio transport, so it is intended to be launched by an MCP-compatible client.
MCP Tools
buy_stock
Places a regular CNC market buy order on NSE.
Input:
{
"stock": "INFY",
"qty": 1
}sell_stock
Places a regular CNC market sell order on NSE.
Input:
{
"stock": "INFY",
"qty": 1
}greet
Input:
{
"name": "Bhimanshu"
}add_two_numbers
Input:
{
"a": 2,
"b": 3
}factorial
Input:
{
"a": 5
}Safety Note
The buy_stock and sell_stock tools call Kite Connect's placeOrder API and can place real market orders. Use valid credentials carefully and test with small quantities only when you are ready to trade.
Project Structure
.
├── config.ts # Loads required environment variables
├── index.ts # Defines and starts the MCP server
├── trade.ts # Wraps Kite Connect order placement
├── package.json # Scripts and dependencies
└── tsconfig.json # TypeScript configurationAvailable Tools
5 toolsadd_two_numbersA
Calculate sum of two numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately discloses the core behavior as a calculation and implies no side effects, but it does not explicitly state that it is a pure/read-only operation or describe the return value 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 a single concise sentence with no redundant words. It is front-loaded with the action and resource, achieving maximum clarity with minimal length.
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 is extremely simple: the schema fully defines the two numeric inputs. The description lacks an explicit statement about the return value, but for a sum function this is readily inferable. The sibling tools indicate a mixed-purpose collection but no additional context is required to invoke the tool 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?
The input schema has 0% description coverage, so the description must compensate. It refers to 'two numbers' which maps generally to parameters a and b, but it does not name them or explain their roles. The addition context makes their meaning implicit, but there is no explicit parameter-level clarification.
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 uses a specific verb 'Calculate' and identifies the resource as 'sum of two numbers', making the tool's purpose immediately clear. It distinguishes from sibling tools like factorial and stock operations because it explicitly states the addition operation.
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 no guidance on when to use this tool versus alternatives such as factorial or stock trading tools. There are no stated use cases, exclusions, or context cues to help an agent decide among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buy_stockC
Buy a stock
| Name | Required | Description | Default |
|---|---|---|---|
| qty | Yes | ||
| stock | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Buy a stock' only names the action; it does not reveal side effects (e.g., portfolio changes, order execution), whether it is a real or simulated transaction, or any error behavior.
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 three-word description is undeniably concise, but it is under-specification rather than efficient structure. It omits critical information, so the minimalism is not an asset here.
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 financial transaction tool with no annotations and no output schema, the extremely brief description is severely incomplete. It lacks context on execution semantics, prerequisites, response format, and potential risks, making it impossible for an agent to invoke safely.
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 adds no parameter meaning. It does not explain that 'stock' is a ticker/identifier and 'qty' is a positive share count, leaving both parameters semantically underdefined.
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 uses the verb 'Buy' and resource 'stock', making the primary action clear. It distinguishes from the sibling 'sell_stock' by direction, but lacks specificity (e.g., market order, ticker symbol) that would fully define scope.
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 usage guidance is provided. The description does not state when to use this tool vs 'sell_stock' or mention any prerequisites, exclusions, or alternative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
factorialC
Calculate factorial of a number.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. It states the core operation but does not disclose what happens for 0 (returns 1), how very large inputs are handled, or potential overflow/errors. Given the maximum input allowed, these are significant omissions.
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 a single, front-loaded sentence with no wasted words. It communicates the essential purpose 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?
Given the simplicity of the operation, the description is minimally adequate. However, it lacks information about return values and edge cases, especially for a tool accepting inputs up to 9007199254740991. No output schema exists to clarify the result format, leaving a gap.
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 0% description coverage, so the description must compensate. It implies parameter 'a' is the number to compute factorial for, but adds no detail about format, range, or special values beyond what the schema already specifies. This is minimal added 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?
The description 'Calculate factorial of a number' clearly states the function with a specific verb and resource, and it distinguishes from siblings like sell_stock or add_two_numbers. However, it does not mention the input must be a non-negative integer, which is a meaningful constraint, but the schema covers that.
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 alternatives. There is no mention of use cases, exclusions, or relationships to sibling math tools like add_two_numbers. The usage is only implied by the function name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
greetA
Greet someone by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Greet someone by name.' It does not describe the return value, side effects, or any conditions, which is a significant gap for a tool that presumably produces some output.
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 a single, concise sentence with no wasted words. It is front-loaded with the action and resource, making it 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?
For a simple tool with one string parameter and no output schema, the description is mostly adequate. It covers the core usage but omits details like the output format or any side effects, though such details may be unnecessary for such a trivial operation.
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 provides no description for the 'name' parameter (0% coverage), but the tool description says 'by name,' which clarifies that the parameter is the person to greet. This adds meaning beyond the bare schema type definition.
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 'Greet someone by name' clearly states the action (greet) and the target (someone by name). It is distinctly different from sibling tools like sell_stock and add_two_numbers, which are unrelated operations.
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 usage guidance is provided. The description does not mention when to use this tool, any prerequisites, or alternatives. It simply states what the tool does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sell_stockC
Sell a stock
| Name | Required | Description | Default |
|---|---|---|---|
| qty | Yes | ||
| stock | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral disclosure. It does not state effects (e.g., removing stock from portfolio), requirements (e.g., ownership), or return values. The phrase 'sell' implies a transaction but nothing further.
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 a single sentence, making it brief, but it is under-specified rather than appropriately concise. It fails to deliver essential information, so the brevity is a deficiency, not a virtue.
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?
With two required parameters, no annotations, no output schema, and no guidance in the description, the tool is drastically incomplete. An agent would lack sufficient context to invoke it correctly or interpret results.
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%, and the description adds no meaning to the parameters 'stock' and 'qty'. The schema provides only types and requiredness; the description must compensate but does not explain what a stock identifier is or whether qty is integer/fractional, etc.
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 'Sell a stock' clearly states a specific action (verb) and resource (stock), making the purpose unambiguous. It does not explicitly distinguish from the sibling buy_stock, but the opposite meaning is evident from the name, so it stops short of full sibling differentiation.
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?
There is no guidance on when to use this tool versus alternatives. The description only says 'Sell a stock' with no context, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The stock tools (buy_stock, sell_stock) are distinct, and the math/greeting tools are also individually clear. However, the mix of unrelated domains within a single server creates confusion about tool selection and purpose.
buy_stock and sell_stock follow a consistent verb_noun pattern, but greet, add_two_numbers, and factorial use different styles (bare verb, verb_object, and noun). This inconsistency makes the API feel chaotic.
Five tools is a reasonable number, but for a stock trading server only two are relevant. The other three are unrelated, making the count misleading and the server's scope unfocused.
For a trading server, critical operations like get_quote, list_positions, or place_order variants are missing. Instead, the set includes non-trading utilities, creating severe gaps that prevent any real trading workflow.
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
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
SmartMoney77 MCP v0.6.0 — 14 public tools that turn financial questions into exact numbers and citable links. New: historical_investment_return and compare_investments, which compute "what if I had invested" results from real yearly price data. Also compound interest, FIRE number, credit-card payoff, emergency fund, inflation, latte factor, investment fees, cost of waiting, plus discovery/deep-link/share-pack tools for a catalog of calculators in 6 languages (he/en/ar/es/pt/in). Public, no login. Endpoint: https://smartmoney77.com/mcp
500+ deterministic tools for AI agents: math, conversion, validation, hashing, encoding, date/time.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Zerodha trading platform for placing stock orders, viewing portfolio holdings, and managing mutual fund investments. Provides secure OAuth authentication and real-time trading capabilities through Zerodha's official API.1
- AlicenseNot gradedqualityDmaintenanceProvides real-time and historical Indian stock market data from NSE and BSE exchanges with 66 tools covering quotes, options chains, corporate actions, IPOs, and market analytics for LLM-powered financial analysis.8512MIT
- AlicenseNot gradedqualityDmaintenanceEnables trading operations on Zerodha platform through natural language, supporting account management, order placement/modification, portfolio holdings, positions, margins, and stock news retrieval.Apache 2.0
- AlicenseBqualityDmaintenanceEnables trading and portfolio management on Zerodha Kite Connect through natural language. Supports placing orders, viewing positions/holdings, accessing real-time market data, and managing GTT orders.24MIT
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/bhimanshukalra/kiteconnect-mcp-poc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server