DROYD MCP Server
Provides tools to search DROYD's knowledge base for crypto-related content, news, and developments specifically from YouTube.
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., "@DROYD MCP ServerFind trending AI crypto projects and summarize my watchlist"
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.
DROYD MCP Server
A Model Context Protocol (MCP) server for the DROYD AI trading agent API. This server enables Claude Desktop, Claude Code, and other MCP clients to interact with DROYD's crypto research, project discovery, and trading capabilities.
Features
Agent Chat - Multi-turn conversations with DROYD AI agents (research, trading, data)
Content Search - Search DROYD's knowledge base for crypto news, posts, tweets, and more
Project Discovery - Find projects by name, symbol, address, or semantic concepts
Market Screening - Filter projects using market criteria or natural language
Watchlists - Access personal and swarm watchlists with agent evaluations
Trading - Open positions with flexible leg configurations (stops, takes, etc.)
Position Management - Manage trades and view P&L
Related MCP server: freqtrade-mcp-server
Installation
Option 1: npm (Recommended)
npx @droyd/mcp-serverOption 2: Clone Repository
git clone https://github.com/droyd/mcp-server.git
cd mcp-server
npm install
npm run buildConfiguration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"droyd": {
"command": "npx",
"args": ["-y", "@droyd/mcp-server"],
"env": {
"DROYD_API_KEY": "your-api-key"
}
}
}
}Claude Code
Add to your MCP settings:
{
"mcpServers": {
"droyd": {
"command": "npx",
"args": ["-y", "@droyd/mcp-server"],
"env": {
"DROYD_API_KEY": "your-api-key"
}
}
}
}Local Development
{
"mcpServers": {
"droyd": {
"command": "node",
"args": ["/path/to/droyd-mcp-server/dist/index.js"],
"env": {
"DROYD_API_KEY": "your-api-key"
}
}
}
}Environment Variables
Variable | Required | Description |
| Yes | Your DROYD API key |
| No | Override API base URL (default: https://api.droyd.ai) |
Available Tools
Agent
Tool | Description |
| Chat with a DROYD AI agent (research, trading, data). Supports multi-turn conversations. |
Search
Tool | Description |
| Search the knowledge base for posts, news, tweets, YouTube, developments |
Projects
Tool | Description |
| Find projects by name, symbol, address, or semantic query |
| Screen projects using market filters or natural language |
| Get personal/swarm watchlists with agent evaluations |
Trading
Tool | Description |
| Open positions with flexible leg configurations |
| Close, buy, sell, or update existing positions |
| View active positions, wallet holdings, and P&L |
Development
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
# Type check
npm run typecheck
# Lint
npm run lintAPI Reference
For detailed API documentation, see DROYD API Docs.
Rate Limits
10 requests per 15 minutes per endpoint
HTTP 429 returned when limit exceeded
License
MIT
Available Tools
8 toolsdroyd_chatA
Chat with a DROYD AI agent. Supports multi-turn conversations.
Agent Types:
research - Deep research on crypto projects, trends, and market analysis
trading - Trading signals, momentum analysis, entry/exit recommendations
data - Market data queries, on-chain metrics, project statistics
chat - General conversational assistant
agent - Full capabilities with all tools
Multi-turn Conversations:
Include the conversation_uuid from a previous response to continue the conversation.
Examples:
Start new chat: { "message": "What are the top DeFi trends?" }
Continue conversation: { "message": "Tell me more about the first one", "conversation_uuid": "abc-123" }
Trading analysis: { "message": "Analyze SOL momentum", "agent_type": "trading" }
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message to send to the agent (max 10,000 chars) | |
| agent_type | No | Type of agent: research, trading, data, chat, or agent | trading |
| conversation_uuid | No | UUID to continue an existing conversation | |
| attached_content | No | Additional context to attach (max 50,000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about multi-turn conversations and agent capabilities but lacks details on permissions, rate limits, or response formats. It does not contradict annotations, but for a chat tool with no annotations, more behavioral traits could be described.
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 appropriately sized and front-loaded with the core purpose, followed by structured sections (Agent Types, Multi-turn Conversations, Examples). Most sentences earn their place, though some details (like the 'attached_content' parameter) are not explicitly covered in the description, slightly reducing efficiency.
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 (multi-turn chat with multiple agent types) and no output schema, the description is moderately complete. It covers usage scenarios and parameters but lacks information on response behavior, error handling, or integration with sibling tools. With no annotations and no output schema, it should do more to be fully comprehensive.
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 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by briefly mentioning parameters in examples (e.g., 'message', 'conversation_uuid', 'agent_type') but does not provide additional syntax or format details. Baseline 3 is appropriate as the schema does the heavy lifting.
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's purpose as 'Chat with a DROYD AI agent' and specifies it 'Supports multi-turn conversations,' which distinguishes it from sibling tools focused on filtering, getting positions, managing trades, or searching. It provides a specific verb ('Chat') and resource ('DROYD AI agent') with explicit 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?
The description offers clear context for when to use this tool by detailing agent types (e.g., 'research' for crypto analysis, 'trading' for signals) and multi-turn conversation handling. However, it does not explicitly state when not to use it or name alternatives among sibling tools, such as when to use droyd_search_content instead for specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_filter_projectsA
Filter and screen crypto projects using market criteria.
Filter Modes:
natural_language - Describe what you want (e.g., "trending micro-cap Solana tokens")
direct - Use specific filter parameters
Sort Options: market_cap, price_change, traders, traders_change, volume, volume_change, buy_volume_ratio, quant_score, quant_score_change, mentions_24h, mentions_7d
Chains: solana, ethereum, base, arbitrum
Note: Market cap values are in MILLIONS (e.g., max_market_cap: 10 = $10M)
Examples:
Natural language: { "filter_mode": "natural_language", "instructions": "Find trending micro-cap Solana tokens with high trader growth" }
Direct filters: { "filter_mode": "direct", "sort_by": "traders_change", "tradable_chains": ["solana"], "max_market_cap": 10, "min_liquidity": 50000 }
Oversold tokens: { "filter_mode": "direct", "sort_by": "quant_score", "sort_direction": "asc", "max_rsi": 30 }
| Name | Required | Description | Default |
|---|---|---|---|
| filter_mode | Yes | Filter mode | |
| instructions | No | Natural language instructions (min 10 chars) | |
| sort_by | No | Sort field | |
| sort_direction | No | Sort direction | |
| timeframe | No | Timeframe for metrics | |
| tradable_chains | No | Filter by chains (solana, ethereum, base, arbitrum) | |
| min_market_cap | No | Min market cap in MILLIONS | |
| max_market_cap | No | Max market cap in MILLIONS | |
| min_price_change | No | Min price change % | |
| max_price_change | No | Max price change % | |
| min_liquidity | No | Min liquidity in USD | |
| min_volume | No | Min volume in USD | |
| min_trader_count | No | Min unique traders | |
| min_trader_change | No | Min trader change % | |
| min_technical_score | No | Min quant score (-100 to 100) | |
| max_technical_score | No | Max quant score | |
| min_rsi | No | Min RSI (0-100) | |
| max_rsi | No | Max RSI | |
| limit | No | Results (1-50) | |
| page | No | Page number (0-based) | |
| include_attributes | No | Additional data to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by explaining key behavioral aspects: it clarifies that market cap values are in millions, lists available chains and sort options, and provides concrete examples. However, it doesn't mention rate limits, authentication requirements, or what happens when no results match.
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 perfectly structured with clear sections (Filter Modes, Sort Options, Chains, Note, Examples), uses bold formatting effectively, and every sentence earns its place by providing essential information without 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 complex tool with 21 parameters and no output schema, the description does an excellent job providing context through examples, unit explanations, and available options. The only gap is the lack of information about return format or what happens when filters yield no 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 100%, so the schema already documents all parameters thoroughly. The description adds some value by explaining the million-unit convention for market cap and providing examples that illustrate parameter combinations, but doesn't add significant semantic meaning beyond what's in the 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 the tool's purpose with specific verbs ('Filter and screen') and resources ('crypto projects using market criteria'), distinguishing it from siblings like droyd_search_projects by emphasizing market-based filtering rather than general search.
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 explicit guidance on when to use each filter mode (natural_language vs. direct), includes detailed examples for different scenarios, and lists available sort options and chains, giving comprehensive usage context without needing to reference alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_get_positionsA
Retrieve active trading positions and wallet holdings.
Returns:
All active strategies with their legs (stop losses, take profits, etc.)
Executed swaps history
P&L summary (realized, unrealized, total)
Wallet holdings with current values
Overall portfolio summary
Use leg_status="all" to include executed/completed legs in the response.
Examples:
Active only: { "leg_status": "active" }
Include history: { "leg_status": "all" }
| Name | Required | Description | Default |
|---|---|---|---|
| leg_status | No | Filter: "active" for pending legs only, "all" to include executed | active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It effectively discloses behavioral traits: it's a read operation (implied by 'retrieve'), returns comprehensive data including strategies, swaps, P&L, and wallet info, and explains the impact of the leg_status parameter on response content. It doesn't mention rate limits or authentication needs, but covers core behavior well.
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 and front-loaded: the first sentence states the purpose, followed by a bulleted list of returns, then usage notes and examples. Every sentence earns its place by adding clarity or practical guidance, 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 (retrieving multi-faceted trading data) and no output schema, the description does a good job listing return components. However, it could be more complete by specifying data formats or any limitations, but it covers key aspects adequately for the agent to understand what to expect.
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 100%, so the baseline is 3. The description adds value by explaining the semantics of leg_status beyond the schema: it clarifies that 'all' includes executed/completed legs and provides examples showing how to use it, enhancing understanding without redundancy.
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 verb 'retrieve' and specifies the resources: 'active trading positions and wallet holdings'. It distinguishes from siblings like droyd_get_watchlist (likely for monitoring) and droyd_manage_trade/droyd_open_trade (for trade operations) by focusing on retrieval of current positions and holdings.
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 clear context on when to use the tool: to get active positions and holdings, with guidance on the leg_status parameter to include history. However, it doesn't explicitly state when not to use it or name alternatives among siblings, such as whether droyd_get_watchlist serves a different purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_get_watchlistA
Get watchlist projects for the authenticated user.
Scopes:
agent - Personal agent watchlist only
swarm - Community swarm watchlists
combined - Both personal and swarm (default)
Returns projects with agent evaluations including investment scores and thesis points.
Examples:
Get combined: { "scope": "combined" }
Agent only: { "scope": "agent", "include_attributes": ["market_data", "technical_analysis"] }
With limit: { "scope": "swarm", "limit": 10 }
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Watchlist scope | combined |
| include_attributes | No | Additional data to include | |
| limit | No | Results (1-50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it returns projects with agent evaluations including investment scores and thesis points, which adds behavioral context beyond the input schema. However, it doesn't mention authentication requirements, rate limits, pagination behavior, or error conditions, leaving gaps for a tool with no annotation coverage.
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 with clear sections (purpose, scopes, returns, examples) and uses bullet points effectively. Every sentence adds value, though the examples section is somewhat lengthy but necessary for clarity. It could be slightly more concise in the examples while maintaining usefulness.
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 3 parameters with 100% schema coverage but no annotations and no output schema, the description does a decent job explaining scope and providing examples. However, for a tool that returns complex data (projects with evaluations), more detail on output structure or behavioral aspects would improve completeness, especially without annotations to cover safety or operational traits.
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 100%, so the baseline is 3. The description adds value by explaining the meaning of scope options (personal agent, community swarm, both) and providing concrete examples of parameter usage, which enhances understanding beyond the schema's enum and descriptions. This justifies a score above 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?
The description clearly states the verb 'Get' and resource 'watchlist projects for the authenticated user', making the purpose specific. It distinguishes this tool from siblings like droyd_get_positions (positions vs watchlist) and droyd_search_projects (search vs get watchlist), establishing clear 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?
The description provides clear context about scope options (agent, swarm, combined) with examples, indicating when to use different parameter combinations. However, it doesn't explicitly mention when NOT to use this tool or compare it to alternatives like droyd_filter_projects or droyd_search_projects for similar functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_manage_tradeA
Manage existing trading positions. Close positions, execute additional buys/sells, or modify strategy legs.
Actions:
close - Exit entire position at market
buy - Add to existing position (requires amountUSD)
sell - Partial exit (requires sellPercent, e.g., 0.5 = sell 50%)
update - Modify stop losses and take profits
Examples:
Close position: { "strategy_id": 789, "action": "close" }
Partial sell: { "strategy_id": 789, "action": "sell", "sellPercent": 0.25 }
Add buy: { "strategy_id": 789, "action": "buy", "amountUSD": 50 }
Add stop loss: { "strategy_id": 789, "action": "update", "legs": [ { "leg_action": "add", "type": "stop_loss", "amountUSD": 100, "triggerPercent": 0.10 } ]}
Update existing leg: { "strategy_id": 789, "action": "update", "legs": [ { "leg_action": "update", "leg_id": 123, "triggerPercent": 0.15 } ]}
Remove leg: { "strategy_id": 789, "action": "update", "legs": [ { "leg_action": "remove", "leg_id": 456 } ]}
| Name | Required | Description | Default |
|---|---|---|---|
| strategy_id | Yes | Strategy ID to manage | |
| action | Yes | Action to perform | |
| amountUSD | No | Amount in USD (required for buy action) | |
| portfolio_percent | No | Portfolio percent for buy (0-100) | |
| sellPercent | No | Portion to sell 0-1 (required for sell action) | |
| project_id | No | Override project for buy/sell | |
| legs | No | Leg modifications (required for update action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining the different actions (close, buy, sell, update) and their effects. However, it doesn't mention important behavioral aspects like whether these actions are reversible, what permissions are required, rate limits, or what happens to partially executed orders. The examples help but don't cover all behavioral implications.
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 with clear sections (Actions, Examples) and uses bullet points effectively. The opening sentence clearly states the purpose. While comprehensive, some sentences could be more concise, and the examples section is quite lengthy but necessary for this complex tool.
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 complex trading tool with 7 parameters, no annotations, and no output schema, the description does a decent job but has gaps. It explains the actions well with examples, but doesn't cover error conditions, return values, or system limitations. Given the complexity and financial nature of the operations, more context about what happens after execution would be helpful.
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 100%, so the baseline is 3. The description adds significant value beyond the schema by explaining the semantic meaning of each action type with clear examples. It clarifies what 'close', 'buy', 'sell', and 'update' mean in practice, and provides concrete examples of how to use the legs parameter for different leg actions. This goes well 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's purpose with specific verbs and resources: 'Manage existing trading positions. Close positions, execute additional buys/sells, or modify strategy legs.' It distinguishes this tool from siblings like droyd_open_trade (which opens new trades) and droyd_get_positions (which retrieves positions without modifying them). The description provides a comprehensive overview of all possible actions.
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 clear context for when to use this tool: for managing existing trading positions. It implicitly distinguishes from droyd_open_trade (for opening new trades) and droyd_get_positions (for retrieving position information). However, it doesn't explicitly state when NOT to use this tool or provide specific alternatives for edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_open_tradeA
Open a new trading position with flexible leg configurations.
Leg Types & Trigger Interpretation:
market_buy - Immediate buy at market price (no trigger needed)
limit_order - Buy when price drops by triggerPercent (0.05 = buy at 5% below current)
stop_loss - Sell when price drops by triggerPercent (0.10 = sell at 10% below entry)
take_profit - Sell when price rises by triggerPercent (0.20 = sell at 20% above entry)
quant_buy - Buy when momentum score reaches triggerPercent (e.g., 15)
quant_sell - Sell when momentum score reaches triggerPercent (e.g., -10)
Examples:
Simple buy: { "project_id": 123, "legs": [{ "type": "market_buy", "amountUSD": 100 }] }
With stop loss: { "project_id": 123, "legs": [ { "type": "market_buy", "amountUSD": 100 }, { "type": "stop_loss", "amountUSD": 100, "triggerPercent": 0.15 } ]}
Scaled take profits: { "project_id": 123, "legs": [ { "type": "market_buy", "amountUSD": 100 }, { "type": "stop_loss", "amountUSD": 100, "triggerPercent": 0.10 }, { "type": "take_profit", "amountUSD": 50, "triggerPercent": 0.25, "positionPercent": 0.5 }, { "type": "take_profit", "amountUSD": 50, "triggerPercent": 0.50, "positionPercent": 0.5 } ]}
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID to trade (use this OR contract_address) | |
| contract_address | No | Contract address to trade (use this OR project_id) | |
| chain | No | Blockchain (required if using contract_address) | solana |
| legs | Yes | Trade legs (1-10) | |
| rationale | No | Rationale for the trade |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains key traits: it's a creation tool (opening a position), details trigger interpretations for each leg type (e.g., market_buy is immediate, stop_loss sells at a drop), and includes practical constraints like minimum amountUSD in examples. However, it lacks information on permissions, rate limits, or error handling.
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 and front-loaded with the core purpose, followed by detailed leg type explanations and practical examples. Every sentence earns its place by providing essential context or clarification, with no redundant or verbose content.
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 (trading with multiple leg types), no annotations, and no output schema, the description does a strong job by detailing leg behaviors and providing examples. However, it could improve by mentioning potential outputs or error cases, leaving some gaps for a tool of this 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?
Schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the semantics of leg types and triggerPercent with concrete examples (e.g., '0.05 = buy at 5% below current'), clarifying how parameters interact in real-world scenarios beyond the schema's basic 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 tool's purpose as 'Open a new trading position with flexible leg configurations,' which is a specific verb ('open') + resource ('trading position') + distinguishing feature ('flexible leg configurations'). It differentiates from sibling tools like droyd_get_positions (which retrieves) and droyd_manage_trade (which modifies existing trades).
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 through examples showing when to use different leg types (e.g., 'Simple buy' vs. 'With stop loss'), but it does not explicitly state when to use this tool versus alternatives like droyd_manage_trade or provide exclusions. The guidance is contextual but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_search_contentA
Search the DROYD knowledge base for crypto content.
Search Modes:
recent - Browse latest content by type, category, or ecosystem
semantic - AI-powered search with natural language query
Content Types: posts, news, developments, tweets, youtube, memories, concepts
Categories: defi, nfts, gaming, ai, memecoins, stablecoins, rwas, depin, wallets, etc.
Ecosystems: solana, ethereum, base, bitcoin, arbitrum, optimism, polygon, avalanche, etc.
Examples:
Recent DeFi news: { "search_mode": "recent", "content_types": ["news"], "categories": ["defi"], "days_back": 7 }
Semantic search: { "search_mode": "semantic", "query": "AI agents in crypto", "include_analysis": true }
Ecosystem research: { "search_mode": "recent", "ecosystems": ["solana", "base"], "content_types": ["posts", "tweets"] }
| Name | Required | Description | Default |
|---|---|---|---|
| search_mode | Yes | Search mode | |
| query | No | Search query (required for semantic mode) | |
| content_types | No | Content types to include | |
| categories | No | Category slugs (max 5) | |
| ecosystems | No | Ecosystem slugs (max 5) | |
| days_back | No | Days to look back (1-90) | |
| limit | No | Max results (10-100) | |
| sort_by | No | Sort order | |
| include_analysis | No | Include AI analysis (semantic mode only) | |
| minimum_relevance_score | No | Min relevance score (0-1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explaining the two distinct search modes and their characteristics, listing available content types, categories, and ecosystems, and providing example parameter structures. However, it doesn't mention rate limits, authentication requirements, or error conditions that would be helpful for a search 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?
The description is perfectly structured with clear sections (Search Modes, Content Types, Categories, Ecosystems, Examples) and bullet points. Every sentence earns its place by providing essential information about how to use the tool effectively. The examples are particularly valuable for showing parameter combinations.
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 search tool with 10 parameters, 100% schema coverage, and no output schema, the description does an excellent job explaining the tool's functionality. It covers the two search modes thoroughly, lists available filters, and provides practical examples. The main gap is the lack of information about what the output looks like (no output schema), but the description compensates well for this through clear usage guidance.
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 100% schema description coverage, the baseline is 3. The description adds significant value by explaining the meaning and purpose of search_mode options (recent vs semantic), listing all possible content_types, categories, and ecosystems, and showing through examples how parameters interact. It provides context that helps understand when to use which parameters 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 searches the DROYD knowledge base for crypto content, specifying both the action (search) and resource (crypto content in DROYD knowledge base). It distinguishes itself from sibling tools like droyd_search_projects by focusing on content rather than projects, and from droyd_chat by being a search tool rather than conversational.
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 explicit guidance on when to use each search mode: 'recent' for browsing latest content by type/category/ecosystem, and 'semantic' for AI-powered natural language queries. It includes three concrete examples showing different use cases, making it clear when to choose each mode and how to structure requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
droyd_search_projectsA
Search for crypto projects by name, symbol, address, or semantic query.
Search Types:
project_id - Direct ID lookup (fastest)
name - Search by project name (e.g., "Jupiter", "Raydium")
symbol - Search by ticker symbol (e.g., "JUP", "RAY", "SOL")
address - Search by contract address (exact match)
semantic - AI-powered concept search (e.g., "AI agents in DeFi")
Attributes: developments, recent_content, technical_analysis, market_data, mindshare, detailed_description, metadata
Examples:
By name: { "search_type": "name", "queries": ["Jupiter", "Raydium"] }
By symbol: { "search_type": "symbol", "queries": ["SOL", "ETH", "BTC"] }
Semantic: { "search_type": "semantic", "queries": ["liquid staking protocols on Solana"] }
With data: { "search_type": "name", "queries": ["Bitcoin"], "include_attributes": ["market_data", "technical_analysis"] }
| Name | Required | Description | Default |
|---|---|---|---|
| search_type | Yes | Type of search | |
| queries | Yes | Search queries (1-15) | |
| limit | No | Results per query (1-25) | |
| include_attributes | No | Additional data to include | |
| developments_limit | No | Max developments per project (1-10) | |
| recent_content_limit | No | Max content items per project (1-25) | |
| recent_content_days_back | No | Days back for content (1-30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It describes what the tool does (searching) and different search types, but doesn't mention rate limits, authentication requirements, error conditions, or what happens when no results are found. The description doesn't contradict any annotations since none exist.
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 with clear sections (Search Types, Attributes, Examples) and uses bullet points effectively. It's appropriately sized for the tool's complexity, though the examples section is somewhat lengthy. Most sentences earn their place by providing useful information.
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 search tool with 7 parameters, 100% schema coverage, and no output schema, the description provides adequate context about what the tool does and how to use it. However, it doesn't describe the return format, result structure, or what happens when searches fail. Given the complexity and lack of output schema, more information about expected results would be helpful.
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 100% schema description coverage, the schema already documents all 7 parameters thoroughly. The description adds some value by explaining the different search types in more detail and listing available attributes, but doesn't provide additional parameter semantics beyond what's in the schema descriptions. The examples help illustrate parameter usage patterns.
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's purpose as searching for crypto projects using multiple search methods (name, symbol, address, semantic query, project_id). It distinguishes itself from sibling tools like droyd_filter_projects and droyd_search_content by specifying it searches for 'projects' rather than filtering existing ones or searching content.
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 clear context about when to use different search types (e.g., 'project_id - Direct ID lookup (fastest)', 'semantic - AI-powered concept search'), but doesn't explicitly state when NOT to use this tool or mention alternatives like droyd_filter_projects. The examples help illustrate appropriate usage scenarios.
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. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
droyd_chat - First observed
droyd_filter_projects - First observed
droyd_get_positions - First observed
droyd_get_watchlist - First observed
droyd_manage_trade - First observed
droyd_open_trade - First observed
droyd_search_content - First observed
droyd_search_projects
TDQS
Most tools have distinct purposes: chat, filter projects, get positions, manage trades, open trades, search content, and search projects are clearly separated. However, droyd_get_positions and droyd_get_watchlist could be slightly overlapping in providing portfolio-related data, but their descriptions clarify that positions are for active trades while watchlists are for tracked projects.
All tools follow a consistent 'droyd_verb_noun' pattern with snake_case throughout: droyd_chat, droyd_filter_projects, droyd_get_positions, droyd_get_watchlist, droyd_manage_trade, droyd_open_trade, droyd_search_content, droyd_search_projects. This makes them predictable and easy to identify.
With 8 tools, this is well-scoped for a crypto trading and research server. Each tool serves a specific function in the domain, from chatting with AI agents to managing trades and searching for projects or content, without being overwhelming or too sparse.
The toolset covers core crypto workflows: research (chat, search), project discovery (filter, search), portfolio management (get positions, watchlist), and trading (open, manage). A minor gap is the lack of a tool for direct market data queries or analytics beyond chat, but the chat tool with agent types like 'data' and 'trading' can partially fill this role.
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
Trade across 22+ exchanges and brokers from any MCP-capable AI agent, no install required.
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Crypto trading intelligence MCP — 34+ endpoints, x402 pay-per-use, AI agent strategy & execution
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI clients to access live crypto market data and AI-driven quantitative analysis, with structured outputs and full observability.-
- AlicenseNot gradedqualityBmaintenanceAn MCP server for cryptocurrency trading via Freqtrade, enabling trade management, balance checks, strategy configuration, backtesting, and bot lifecycle control from any MCP-compatible AI agent.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI tools to execute trades and fetch market data across six crypto exchanges via natural language or API, with dual Telegram and MCP interfaces.2-
- AlicenseBqualityDmaintenanceEnables AI agents to trade crypto with paper money, access market data, view leaderboards, and manage trading bots via an MCP-compatible interface.16MIT
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/droyd-ai/droyd-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server