API-get_ai_intels_api_v1_ai_intel_get
Retrieve AI intelligence data from decentralized chains and social media via RSS3 API integration for natural language queries.
Instructions
Get Ai Intels
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:177-201 (handler)Generic handler for all MCP tools: locates the OpenAPI operation corresponding to the tool name via openApiLookup and executes it using the HttpClient, returning the JSON response. This handles the execution of 'API-get_ai_intels_api_v1_ai_intel_get'.// find operation const mcpToolWithClient = mcpToolWithClients.find( (t) => t.mcpTools.openApiLookup[name], ); if (!mcpToolWithClient) { throw new Error(`Method ${name} not found`); } const operation = mcpToolWithClient.mcpTools.openApiLookup[name]; // execute try { const response = await mcpToolWithClient.client.executeOperation( operation, params, ); return { content: [ { type: "text", // currently this is the only type that seems to be used by mcp server text: JSON.stringify(response.data), // TODO: pass through the http status code text? }, ], }; } catch (error) {
- index.js:108-126 (registration)Dynamically registers all tools by iterating over MCP tools derived from OpenAPI specs, constructing tool names as `${toolName}-${method.name}` (truncated), which includes 'API-get_ai_intels_api_v1_ai_intel_get'.for (const mcpToolWithClient of mcpToolWithClients) { for (const [toolName, def] of Object.entries( mcpToolWithClient.mcpTools.tools, )) { for (const method of def.methods) { console.error("method", method); const toolNameWithMethod = `${toolName}-${method.name}`; const truncatedToolName = toolNameWithMethod.slice(0, 64); const trimmedDescription = method.description.split("Error")[0].trim(); tools.push({ name: truncatedToolName, description: trimmedDescription, inputSchema: { type: "object", properties: {}, }, }); } }
- index.js:156-175 (schema)Special tool 'API-get-input-schema' that provides the actual input schema for any registered tool, including the target, by looking up the corresponding method.inputSchema from OpenAPI.if (name === "API-get-input-schema") { for (const mcpToolWithClient of mcpToolWithClients) { for (const [toolName, def] of Object.entries( mcpToolWithClient.mcpTools.tools, )) { for (const method of def.methods) { const toolNameWithMethod = `${toolName}-${method.name}`; const truncatedToolName = toolNameWithMethod.slice(0, 64); if (truncatedToolName === params.toolName) { return { content: [ { type: "text", text: JSON.stringify(method.inputSchema) }, ], }; } } } } throw new Error(`Method ${params.toolName} not found`); }
- index.js:78-84 (helper)Converts OpenAPI specifications to MCP tools using OpenAPIToMCPConverter.convertToMCPTools(), creating the openApiLookup and tools used for registration and execution.const mcpToolWithClients = converterWithClients.map((cwc) => { const mcpTools = cwc.converter.convertToMCPTools(); return { mcpTools, client: cwc.client, }; });
- index.js:40-69 (helper)Fetches OpenAPI specifications from RSS3 endpoints (including ai.rss3.io which likely defines the /api/v1/ai-intel/get endpoint) and initializes HttpClient for execution.const openApiSpecs = ( await Promise.allSettled([ fetch("https://gi.rss3.io/docs/openapi.json").then(async (res) => { if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`); return res.json(); }), fetch("https://ai.rss3.io/openapi.json").then(async (res) => { if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`); return res.json(); }), ]).then((results) => { return results.map((result) => { if (result.status === "fulfilled") { const client = new HttpClient( { baseUrl: result.value.servers[0].url, }, result.value, ); return { spec: result.value, client, }; } console.error("Failed to fetch openapi spec", result.reason); return null; }); }) ).filter(Boolean);