get_security_risk_endpoints
Identify and analyze security risks in blockchain transactions by retrieving endpoints for token security, NFT verification, phishing detection, and smart contract vulnerabilities.
Instructions
Get all endpoints in the "Security & Risk Analysis" category. Comprehensive security endpoints for token security analysis, NFT authenticity verification, honeypot detection, malicious address identification, phishing site detection, contract approval risks, dApp security assessment, ABI data decoding, and comprehensive security metrics to protect users from scams, rugpulls, and malicious contracts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/dynamic-tools.ts:165-178 (handler)Handler function for the 'get_security_risk_endpoints' tool. Dynamically generated for each category, it fetches the tools in the 'Security & Risk Analysis' category using getAllToolsInCategory and returns a formatted list with names and descriptions.handler: async ( args: Record<string, unknown> | undefined, ): Promise<any> => { const toolsInCategory = getAllToolsInCategory(category.category); return asTextContentResult({ category: category.category, description: category.description, tools: toolsInCategory.map((tool ) => ({ name: tool.name, description: tool.description })), }); },
- src/toolRegistry.ts:220-234 (registration)Registration of the 'get_security_risk_endpoints' tool as the name of the 'Security & Risk Analysis' category in ToolRegistry. This category definition is used by dynamicTools to create the MCP tool.{ "category": "Security & Risk Analysis", "name": "get_security_risk_endpoints", "description": "Comprehensive security endpoints for token security analysis, NFT authenticity verification, honeypot detection, malicious address identification, phishing site detection, contract approval risks, dApp security assessment, ABI data decoding, and comprehensive security metrics to protect users from scams, rugpulls, and malicious contracts.", "tools": [ "get_token_security", "get_nft_security",// rishabh "check_malicious_address",// rishabh "check_approval_security",// rishabh "get_user_approvals",// rishabh "check_dapp_security",// rishabh "detect_phishing_site",// rishabh "decode_abi_data",// rishabh ] },
- src/dynamic-tools.ts:159-163 (schema)Tool definition including name 'get_security_risk_endpoints', description, and empty inputSchema (z.object({})) for the dynamically generated category tool.}, tool: { name: categoryEndpointName, description: `Get all endpoints in the "${category.category}" category. ${category.description}`, inputSchema: zodToInputSchema(categorySchema),
- src/toolRegistry.ts:298-314 (helper)Helper function getAllToolsInCategory used by the handler to retrieve the list of supported tools matching the names in the category's 'tools' array.export function getAllToolsInCategory(category: string){ let categoryUsed = ToolRegistry.find(tool => tool.category === category); if(!categoryUsed){ return [] } const allWrappedTools = supportedTools // return all the tools from wrapped tools that are in the category (name match) let toolsInCategory = []; for (const tool of categoryUsed.tools){ const wrappedTool = allWrappedTools.find(wrappedTool => wrappedTool.name === tool); if(wrappedTool){ toolsInCategory.push(wrappedTool); } else console.log(`Tool ${tool} not found in wrapped tools`); } return toolsInCategory; }
- src/dynamic-tools.ts:149-182 (registration)Dynamic generation of category tools (including 'get_security_risk_endpoints') from ToolRegistry, defining metadata, tool spec, and handler.const categoryTools = ToolRegistry.map(category => { const categorySchema = z.object({}); const categoryEndpointName = category.name; return { metadata: { resource: 'dynamic_tools', operation: 'read' as const, tags: ['category'], }, tool: { name: categoryEndpointName, description: `Get all endpoints in the "${category.category}" category. ${category.description}`, inputSchema: zodToInputSchema(categorySchema), }, handler: async ( args: Record<string, unknown> | undefined, ): Promise<any> => { const toolsInCategory = getAllToolsInCategory(category.category); return asTextContentResult({ category: category.category, description: category.description, tools: toolsInCategory.map((tool ) => ({ name: tool.name, description: tool.description })), }); }, }; }); return [getEndpointTool, callEndpointTool, ...categoryTools];