| name | financial-tool |
| description | Create a new financial data tool following project patterns |
Financial Tool Creator
Create a new financial data tool in src/tools/finance/ following project conventions.
Steps
-
Create the tool file in src/tools/finance/<tool-name>.ts
-
Follow the established pattern:
- Export a Zod schema for input validation
- Export the main tool function with proper error handling
- Use the
callApi() helper from api.ts to access financialdatasets.ai, or create a new provider in providers/
- Include proper TypeScript types
-
Reference these files for patterns:
src/tools/finance/key-ratios.ts - Example tool using financialdatasets.ai API
src/tools/finance/api.ts - API client for financialdatasets.ai
src/tools/finance/brazil-features.ts - Brazil-specific integrations
src/tools/types.ts - Common types
-
Register the tool in src/tools/finance/index.ts
-
Add tests in src/__tests__/ if the tool has complex logic
Tool Structure Template
import { z } from 'zod';
import { callApi } from './api.js';
import { formatToolResult } from '../types.js';
export const <toolName>Schema = z.object({
ticker: z.string().describe('Stock ticker symbol'),
});
export type <ToolName>Input = z.infer<typeof <toolName>Schema>;
export async function <toolName>(input: <ToolName>Input): Promise<string> {
const { ticker } = input;
const { data, url } = await callApi(`/some-endpoint`, { ticker });
return formatToolResult(data, [url]);
}