index.ts•1.28 kB
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { getBrasilApiData, formatErrorResponse } from "../../utils/api.js";
/**
* Register DDD (area code) related tools to the MCP server
* @param server MCP Server instance
*/
export function registerDddTools(server: McpServer) {
// Tool to get information about a Brazilian area code (DDD)
server.tool(
"ddd-info",
"Get information about a Brazilian area code (DDD) including state and cities",
{
ddd: z.string()
.regex(/^\d{2}$/, "DDD must contain exactly 2 digits")
.describe("Area code (DDD) to be queried (only numbers, 2 digits)")
},
async ({ ddd }) => {
console.error(`Getting info for DDD: ${ddd}`);
const result = await getBrasilApiData(`/ddd/v1/${ddd}`);
if (!result.success) {
return formatErrorResponse(`Error getting DDD information: ${result.message}`);
}
// Format the response data
const dddInfo = result.data;
const cities = dddInfo.cities.join(", ");
return {
content: [{
type: "text" as const,
text: `
DDD ${ddd} Information:
State: ${dddInfo.state}
Cities: ${cities}
`
}]
};
}
);
}