{"version":3,"sources":["../src/modelcontextprotocol/index.ts","../src/shared/api/index.ts","../src/shared/tools/documentation/getDocumentation.ts","../src/shared/tools/documentation/getDocumentationSection.ts","../src/shared/tools/documentation/getDocumentationPage.ts","../src/shared/tools/documentation/getOAuth10aGuide.ts","../src/shared/tools/documentation/githubReadme.ts","../src/shared/tools/documentation/getOAuth20Guide.ts","../src/shared/tools/documentation/getOpenFinanceGuide.ts","../src/shared/tools/services/getServicesList.ts","../src/shared/tools/operations/getApiOperationList.ts","../src/shared/tools/operations/getApiOperationDetails.ts","../src/shared/tools/index.ts","../package.json"],"sourcesContent":["import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { defaultDevelopersApi } from '@/shared/api';\nimport { tools } from '@/shared/tools';\nimport { ToolContext } from '@/shared/types';\nimport { version } from '../../package.json';\n\nexport type { DevelopersApi, Tool, ToolContext } from '@/shared/types';\nexport { tools } from '@/shared/tools';\n\nexport interface MastercardDevelopersAgentToolkitConfig {\n  service?: string;\n  apiSpecification?: string;\n}\n\nexport class MastercardDevelopersAgentToolkit extends McpServer {\n  constructor(config: MastercardDevelopersAgentToolkitConfig = {}) {\n    super({\n      name: 'mastercard-developers-mcp',\n      version: version,\n    });\n\n    this.registerAllTools(config);\n  }\n\n  private registerAllTools(config: MastercardDevelopersAgentToolkitConfig) {\n    const context = buildContext(config);\n\n    const availableTools = tools(context);\n    const enabledTools = availableTools.filter((tool) => {\n      // If serviceId is provided, disable the services list tool\n      if (context.serviceId && tool.name === 'get-services-list') {\n        return false;\n      }\n\n      return true;\n    });\n\n    enabledTools.forEach((tool) => {\n      this.registerTool(\n        tool.name,\n        {\n          title: tool.title,\n          description: tool.description,\n          inputSchema: tool.parameters,\n          annotations: tool.annotations,\n        },\n        async (params: any) => {\n          try {\n            const result = await tool.execute(params);\n            return { content: [{ type: 'text' as const, text: result }] };\n          } catch (error) {\n            const message =\n              error instanceof Error ? error.message : String(error);\n            return {\n              content: [{ type: 'text' as const, text: message }],\n              isError: true,\n            };\n          }\n        }\n      );\n    });\n  }\n}\n\nexport function buildContext(\n  config: MastercardDevelopersAgentToolkitConfig\n): ToolContext {\n  const context: ToolContext = { client: defaultDevelopersApi };\n  if (config.service != null) {\n    const serviceId = parseServiceIdFromUrl(config.service);\n    if (serviceId == null) {\n      throw new Error(\n        'Invalid service URL provided. It should be in the format: https://developer.mastercard.com/<service-id>/documentation/**'\n      );\n    }\n\n    context.serviceId = serviceId;\n  } else if (config.apiSpecification != null) {\n    const parsed = parseAPISpecificationPathAndServiceId(\n      config.apiSpecification\n    );\n    if (parsed?.serviceId == null || parsed?.apiSpecificationPath == null) {\n      throw new Error(\n        'Invalid API specification path provided. It should be in the format: https://static.developer.mastercard.com/content/<service-id>/swagger/<nested-file-path>.yaml'\n      );\n    }\n\n    context.serviceId = parsed.serviceId;\n    context.apiSpecificationPath = parsed.apiSpecificationPath;\n  }\n\n  return context;\n}\n\nfunction validateServiceId(serviceId: string): boolean {\n  return /^[a-z]+(?:-[a-z0-9]+)*$/i.test(serviceId);\n}\n\nfunction parseServiceIdFromUrl(input: string): string | null {\n  try {\n    // Extract from https://developer.mastercard.com/<service-id>/documentation/**\n    const url = new URL(input);\n\n    if (url.hostname !== 'developer.mastercard.com') {\n      return null;\n    }\n\n    const pathParts = url.pathname.split('/').filter((part) => part.length > 0);\n    // Path should be: /<service-id>/documentation/...\n    if (pathParts.length >= 2 && pathParts[1] === 'documentation') {\n      const serviceId = pathParts[0];\n      if (serviceId && validateServiceId(serviceId)) {\n        return serviceId.toLowerCase();\n      }\n    }\n\n    return null;\n  } catch {\n    // Not a valid URL, return null\n    return null;\n  }\n}\n\nfunction parseAPISpecificationPathAndServiceId(\n  input: string\n): { serviceId: string; apiSpecificationPath: string } | null {\n  try {\n    // Try to parse as URL first\n    const url = new URL(input);\n\n    // Handle full URL: https://static.developer.mastercard.com/content/open-finance-us/swagger/openbanking-us.yaml\n    if (url.hostname !== 'static.developer.mastercard.com') {\n      return null;\n    }\n    const pathParts = url.pathname.split('/').filter((part) => part.length > 0);\n    // Path should be: content/<service-id>/swagger/<nested-file-path>.yaml\n    if (\n      pathParts.length >= 4 &&\n      pathParts[0] === 'content' &&\n      pathParts[2] === 'swagger'\n    ) {\n      const serviceId = pathParts[1];\n      const file = pathParts.slice(3).join('/');\n\n      if (\n        serviceId &&\n        file &&\n        validateServiceId(serviceId) &&\n        file.endsWith('.yaml')\n      ) {\n        return {\n          serviceId: serviceId.toLowerCase(),\n          apiSpecificationPath: `/${serviceId.toLowerCase()}/swagger/${file}`,\n        };\n      }\n    }\n\n    return null;\n  } catch {\n    return null;\n  }\n}\n","import { z } from 'zod';\nimport fetch from 'node-fetch';\n\nimport type { DevelopersApi } from '@/shared/types';\n\nconst PathSchema = z\n  .string()\n  .min(1, 'Path must be a non-empty string')\n  .startsWith('/', 'Path must start with /');\n\n/**\n * API client for Mastercard Developers Platform\n */\nexport class MastercardAPIClient {\n  private readonly baseUrl = new URL('https://developer.mastercard.com/');\n\n  /**\n   * Makes HTTP request to the specified endpoint\n   */\n  private async request(\n    endpoint: string,\n    params?: Record<string, string>\n  ): Promise<string> {\n    const url = new URL(endpoint, this.baseUrl);\n\n    // Ensure the constructed URL is still within the expected domain\n    if (url.hostname !== this.baseUrl.hostname) {\n      throw new Error('Invalid endpoint: URL hostname mismatch');\n    }\n\n    if (params) {\n      const searchParams = new URLSearchParams(params);\n      url.search = searchParams.toString();\n    }\n\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: {\n        'User-Agent': 'mastercard-developers-mcp',\n      },\n    });\n\n    if (!response.ok) {\n      // Don't expose detailed error information\n      throw new Error(\n        `Request failed with status ${response.status} - ${url.toString()}`\n      );\n    }\n\n    return response.text();\n  }\n\n  /**\n   * Retrieve a list of all available Mastercard services\n   */\n  async listServices(): Promise<string> {\n    return this.request('/llms.txt', { absolute_urls: 'false' });\n  }\n\n  /**\n   * Get documentation overview for a specific service\n   */\n  async getDocumentation(serviceId: string): Promise<string> {\n    return this.request(`/${serviceId}/documentation/llms.txt`, {\n      absolute_urls: 'false',\n    });\n  }\n\n  /**\n   * Get content for a specific documentation section\n   */\n  async getDocumentationSection(\n    serviceId: string,\n    sectionId: string\n  ): Promise<string> {\n    return this.request(`/${serviceId}/documentation/llms-full.txt`, {\n      absolute_urls: 'false',\n      section_id: sectionId,\n    });\n  }\n\n  /**\n   * Get a specific documentation page\n   */\n  async getDocumentationPage(pagePath: string): Promise<string> {\n    const validatedPath = PathSchema.parse(pagePath);\n    return this.request(validatedPath);\n  }\n\n  /**\n   * Get API operations for a specific API specification\n   */\n  async getApiOperations(apiSpecificationPath: string): Promise<string> {\n    const validatedPath = PathSchema.parse(apiSpecificationPath);\n    return this.request(validatedPath, { summary: 'true' });\n  }\n\n  /**\n   * Get detailed information for a specific API operation\n   */\n  async getApiOperationDetails(\n    apiSpecificationPath: string,\n    method: string,\n    path: string\n  ): Promise<string> {\n    const validatedApiPath = PathSchema.parse(apiSpecificationPath);\n    return this.request(validatedApiPath, { method: method, path: path });\n  }\n}\n\nexport const defaultDevelopersApi: DevelopersApi = new MastercardAPIClient();\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (context: ToolContext): string => {\n  const baseDescription = `Provides an overview of all available documentation for a specific Mastercard service\nincluding section titles, descriptions, and navigation links.`;\n\n  if (context.serviceId) {\n    return `${baseDescription}\n\nUses the configured service: ${context.serviceId}`;\n  }\n\n  return `${baseDescription}\n\nIt takes one argument:\n- serviceId (str): The unique identifier of the Mastercard service (e.g., 'send', 'loyalty', 'locations')`;\n};\n\nexport const getParameters = (context: ToolContext): z.ZodObject<any> => {\n  if (context.serviceId) {\n    return z.object({});\n  }\n\n  return z.object({\n    serviceId: z\n      .string()\n      .min(1)\n      .describe(\n        \"The unique identifier of the Mastercard service (e.g., 'send', 'loyalty', 'locations')\"\n      ),\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getDocumentation(\n    context.serviceId || params.serviceId\n  );\n};\n\nexport const getDocumentation = (context: ToolContext): Tool => ({\n  name: 'get-documentation',\n  title: 'Get Documentation',\n  description: getDescription(context),\n  parameters: getParameters(context),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (context: ToolContext): string => {\n  const baseDescription = `\nRetrieves the complete content for a specific documentation section.\nIMPORTANT: A section is not a single page, but rather a collection of pages that are grouped together.\n`;\n\n  if (context.serviceId) {\n    return `${baseDescription}\n\nUses the configured service: ${context.serviceId}\n\nIt takes one argument:\n- sectionId (str): The specific section identifier within the service documentation (e.g., 'getting-started', 'api-reference')`;\n  }\n\n  return `${baseDescription}\n\nIt takes two arguments:\n- serviceId (str): The unique identifier of the Mastercard service (e.g., 'send', 'loyalty', 'locations')\n- sectionId (str): The specific section identifier within the service documentation (e.g., 'getting-started', 'api-reference')\n`;\n};\n\nexport const getParameters = (context: ToolContext): z.ZodObject<any> => {\n  const baseParams = {\n    sectionId: z\n      .string()\n      .min(1)\n      .describe(\n        \"The specific section identifier within the service documentation (e.g., 'getting-started', 'api-reference')\"\n      ),\n  };\n\n  if (context.serviceId) {\n    return z.object(baseParams);\n  }\n\n  return z.object({\n    serviceId: z\n      .string()\n      .min(1)\n      .describe(\n        \"The unique identifier of the Mastercard service (e.g., 'send', 'loyalty', 'locations')\"\n      ),\n    ...baseParams,\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getDocumentationSection(\n    context.serviceId || params.serviceId,\n    params.sectionId\n  );\n};\n\nexport const getDocumentationSection = (context: ToolContext): Tool => ({\n  name: 'get-documentation-section-content',\n  title: 'Get Documentation Section Content',\n  description: getDescription(context),\n  parameters: getParameters(context),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (): string => {\n  return `Retrieves the complete content of a specific documentation page.\n\nTakes one argument:\n- pagePath (str): The full path to the documentation page (e.g., '/send/documentation/use-cases/index.md')`;\n};\n\nexport const getParameters = (): z.ZodObject<any> => {\n  return z.object({\n    pagePath: z\n      .string()\n      .min(1)\n      .startsWith('/')\n      .describe(\n        \"The full path to the documentation page (e.g., '/send/documentation/use-cases/index.md')\"\n      ),\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getDocumentationPage(params.pagePath);\n};\n\nexport const getDocumentationPage = (context: ToolContext): Tool => ({\n  name: 'get-documentation-page',\n  title: 'Get Documentation Page',\n  description: getDescription(),\n  parameters: getParameters(),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\nimport { fetchGithubReadme } from './githubReadme';\n\nconst getDescription = (): string => {\n  return `Retrieves the comprehensive OAuth 1.0a integration guide including step-by-step instructions,\ncode examples, and best practices for Mastercard APIs. Optionally specify a programming language\nto get language-specific examples and guidance.`;\n};\n\nexport const getParameters = (): z.ZodObject<any> => {\n  return z.object({\n    language: z\n      .enum([\n        'java',\n        'kotlin',\n        'c#',\n        'python',\n        'javascript',\n        'typescript',\n        'golang',\n        'others',\n      ])\n      .optional()\n      .describe(\n        'Programming language for language-specific examples and guidance'\n      ),\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  const basePath =\n    '/platform/documentation/authentication/using-oauth-1a-to-access-mastercard-apis/index.md';\n\n  if (params.language) {\n    let repositoryName: string | undefined;\n    switch (params.language) {\n      case 'java':\n      case 'kotlin':\n        repositoryName = 'oauth1-signer-java';\n        break;\n      case 'c#':\n        repositoryName = 'oauth1-signer-csharp';\n        break;\n      case 'python':\n        repositoryName = 'oauth1-signer-python';\n        break;\n      case 'javascript':\n      case 'typescript':\n        repositoryName = 'oauth1-signer-nodejs';\n        break;\n      case 'golang':\n        repositoryName = 'oauth1-signer-golang';\n        break;\n    }\n\n    if (repositoryName !== undefined) {\n      const content = await fetchGithubReadme(repositoryName, context);\n      if (content !== undefined) {\n        return content;\n      }\n    }\n  }\n\n  // Fallback to fetching the general OAuth 1.0a guide\n  return await context.client.getDocumentationPage(basePath);\n};\n\nexport const getOAuth10aGuide = (context: ToolContext): Tool => ({\n  name: 'get-oauth10a-integration-guide',\n  title: 'Get OAuth 1.0a Integration Guide',\n  description: getDescription(),\n  parameters: getParameters(),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import fetch from 'node-fetch';\nimport { ToolContext } from '@/shared/types';\n\nexport async function fetchGithubReadme(\n  repositoryName: string,\n  context: ToolContext\n): Promise<string | undefined> {\n  const url = `https://raw.githubusercontent.com/Mastercard/${repositoryName}/refs/heads/main/README.md`;\n  if (context.client.fetchGithubGuide !== undefined) {\n    return context.client.fetchGithubGuide(url).catch(() => undefined);\n  }\n  const response = await fetch(url);\n  return response.ok ? response.text() : undefined;\n}\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\nimport { fetchGithubReadme } from './githubReadme';\n\nconst getDescription = (): string => {\n  return `Retrieves the comprehensive OAuth 2.0 integration guide including step-by-step instructions,\ncode examples, and best practices for Mastercard APIs. Optionally specify a programming language\nto get language-specific examples and guidance.`;\n};\n\nexport const getParameters = (): z.ZodObject<any> => {\n  return z.object({\n    language: z\n      .enum(['java', 'kotlin', 'javascript', 'typescript', 'others'])\n      .optional()\n      .describe(\n        'Programming language for language-specific examples and guidance'\n      ),\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  const basePath =\n    '/platform/documentation/authentication/using-oauth-2-to-access-mastercard-apis/index.md';\n\n  if (params.language) {\n    let repositoryName: string | undefined;\n    switch (params.language) {\n      case 'java':\n      case 'kotlin':\n        repositoryName = 'oauth2-client-java';\n        break;\n      case 'javascript':\n      case 'typescript':\n        repositoryName = 'oauth2-client-js';\n        break;\n    }\n\n    if (repositoryName !== undefined) {\n      const content = await fetchGithubReadme(repositoryName, context);\n      if (content !== undefined) {\n        return content;\n      }\n    }\n  }\n\n  // Fallback to fetching the general OAuth 2.0 guide\n  return await context.client.getDocumentationPage(basePath);\n};\n\nexport const getOAuth20Guide = (context: ToolContext): Tool => ({\n  name: 'get-oauth20-integration-guide',\n  title: 'Get OAuth 2.0 Integration Guide',\n  description: getDescription(),\n  parameters: getParameters(),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (): string => {\n  return `Retrieves the comprehensive Open Finance (previously known as Open Banking) integration\nguide including setup instructions, API usage examples, and implementation best practices.`;\n};\n\nexport const getParameters = (): z.ZodObject<any> => {\n  return z.object({});\n};\n\nexport const execute = async (\n  context: ToolContext,\n  _params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getDocumentationPage(\n    '/open-finance-us/documentation/quick-start-guide/index.md'\n  );\n};\n\nexport const getOpenFinanceGuide = (context: ToolContext): Tool => ({\n  name: 'get-openfinance-integration-guide',\n  title: 'Get Open Finance Integration Guide',\n  description: getDescription(),\n  parameters: getParameters(),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (): string => {\n  return `Lists all available Mastercard Developers Products and Services with their basic information\nincluding title, description, and service id.\nIMPORTANT: The response contains both 'Products' (business offerings) and 'Services' (technical APIs with serviceIds). Use \"serviceId\" for each service for any tools that require serviceId as the parameter.\n`;\n};\n\nexport const getParameters = (): z.ZodObject<any> => {\n  return z.object({});\n};\n\nexport const execute = async (\n  context: ToolContext,\n  _params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.listServices();\n};\n\nexport const getServicesList = (context: ToolContext): Tool => ({\n  name: 'get-services-list',\n  title: 'Get Services List',\n  description: getDescription(),\n  parameters: getParameters(),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (context: ToolContext): string => {\n  const baseDescription = `Provides a summary of all API operations for a specific Mastercard API\nspecification including HTTP methods, request paths, titles, and descriptions.`;\n\n  if (context.apiSpecificationPath) {\n    return `${baseDescription}\n\nUses the configured API specification: ${context.apiSpecificationPath}`;\n  }\n\n  return `${baseDescription}\n\nIt takes one argument:\n- apiSpecificationPath (str): The path to the API specification file e.g., '/open-finance-us/swagger/openbanking-us.yaml')`;\n};\n\nexport const getParameters = (context: ToolContext): z.ZodObject<any> => {\n  if (context.apiSpecificationPath) {\n    return z.object({});\n  }\n\n  return z.object({\n    apiSpecificationPath: z\n      .string()\n      .startsWith('/')\n      .describe(\n        'The path to the API specification file (e.g., /open-finance-us/swagger/openbanking-us.yaml)'\n      ),\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getApiOperations(\n    context.apiSpecificationPath || params.apiSpecificationPath\n  );\n};\n\nexport const getApiOperationList = (context: ToolContext): Tool => ({\n  name: 'get-api-operation-list',\n  title: 'Get API Operation List',\n  description: getDescription(context),\n  parameters: getParameters(context),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { z } from 'zod';\nimport { Tool, ToolContext } from '@/shared/types';\n\nconst getDescription = (context: ToolContext): string => {\n  const baseDescription = `Provides detailed information about a specific API operation including parameter definitions,\nrequest and response schemas, and technical specifications for successful API calls.`;\n\n  if (context.apiSpecificationPath) {\n    return `${baseDescription}\n\nUses the configured API specification: ${context.apiSpecificationPath}\n\nIt takes two arguments:\n- method (str): The HTTP method of the operation (e.g., GET, POST, PUT, DELETE)\n- path (str): The API endpoint path from the specification (e.g., /payments, /accounts/{id})`;\n  }\n\n  return `${baseDescription}\n\nIt takes three arguments:\n- apiSpecificationPath (str): The path to the API specification file (e.g. The path would be /open-finance-us/swagger/openbanking-us.yaml for\nhttps://static.developer.mastercard.com/content/open-finance-us/swagger/openbanking-us.yaml,\nhttps://developer.mastercard.com/open-finance-us/swagger/openbanking-us.yaml,\nor /open-finance-us/swagger/openbanking-us.yaml)\n- method (str): The HTTP method of the operation (e.g., GET, POST, PUT, DELETE)\n- path (str): The API endpoint path from the specification (e.g., /payments, /accounts/{id})`;\n};\n\nconst httpMethod = z\n  .string()\n  .transform((value) => value.toUpperCase())\n  .pipe(z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']));\n\nexport const getParameters = (context: ToolContext): z.ZodObject<any> => {\n  const baseParams = {\n    method: httpMethod.describe(\n      'The HTTP method of the operation (e.g., GET, POST, PUT, DELETE)'\n    ),\n    path: z\n      .string()\n      .startsWith('/')\n      .describe(\n        'The API endpoint path from the specification (e.g., /payments, /accounts/{id})'\n      ),\n  };\n\n  if (context.apiSpecificationPath) {\n    return z.object(baseParams);\n  }\n\n  return z.object({\n    apiSpecificationPath: z\n      .string()\n      .startsWith('/')\n      .describe(\n        'The path to the API specification (e.g., /open-finance-us/swagger/openbanking-us.yaml)'\n      ),\n    ...baseParams,\n  });\n};\n\nexport const execute = async (\n  context: ToolContext,\n  params: z.infer<ReturnType<typeof getParameters>>\n): Promise<string> => {\n  return await context.client.getApiOperationDetails(\n    context.apiSpecificationPath || params.apiSpecificationPath,\n    params.method,\n    params.path\n  );\n};\n\nexport const getApiOperationDetails = (context: ToolContext): Tool => ({\n  name: 'get-api-operation-details',\n  title: 'Get API Operation Details',\n  description: getDescription(context),\n  parameters: getParameters(context),\n  annotations: {\n    readOnlyHint: true,\n    destructiveHint: false,\n    idempotentHint: true,\n    openWorldHint: true,\n  },\n  execute: (params) => execute(context, params),\n});\n","import { Tool, ToolContext } from '@/shared/types';\n\n// Documentation tools\nimport { getDocumentation } from '@/shared/tools/documentation/getDocumentation';\nimport { getDocumentationSection } from '@/shared/tools/documentation/getDocumentationSection';\nimport { getDocumentationPage } from '@/shared/tools/documentation/getDocumentationPage';\nimport { getOAuth10aGuide } from '@/shared/tools/documentation/getOAuth10aGuide';\nimport { getOAuth20Guide } from '@/shared/tools/documentation/getOAuth20Guide';\nimport { getOpenFinanceGuide } from '@/shared/tools/documentation/getOpenFinanceGuide';\n\n// Services tools\nimport { getServicesList } from '@/shared/tools/services/getServicesList';\n\n// Operations tools\nimport { getApiOperationList } from '@/shared/tools/operations/getApiOperationList';\nimport { getApiOperationDetails } from '@/shared/tools/operations/getApiOperationDetails';\n\nexport const tools = (context: ToolContext): Tool[] => [\n  // Services\n  getServicesList(context),\n\n  // Documentation\n  getDocumentation(context),\n  getDocumentationSection(context),\n  getDocumentationPage(context),\n  getOAuth10aGuide(context),\n  getOAuth20Guide(context),\n  getOpenFinanceGuide(context),\n\n  // API Operations\n  getApiOperationList(context),\n  getApiOperationDetails(context),\n];\n","{\n  \"version\": \"0.1.6\",\n  \"name\": \"@mastercard/developers-agent-toolkit\",\n  \"homepage\": \"https://github.com/mastercard/developers-agent-toolkit\",\n  \"description\": \"Agent Toolkit for Mastercard Developers Platform\",\n  \"author\": \"Mastercard\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"clean\": \"rm -rf mcp\",\n    \"test\": \"jest\",\n    \"test:coverage\": \"jest --coverage\",\n    \"lint\": \"eslint \\\"./**/*.ts*\\\"\",\n    \"format\": \"prettier --write .\",\n    \"format:check\": \"prettier --check .\",\n    \"prepare\": \"cd .. && husky typescript/.husky\"\n  },\n  \"files\": [\n    \"mcp/**/*\",\n    \"LICENSE\",\n    \"README.md\",\n    \"VERSION\",\n    \"package.json\"\n  ],\n  \"keywords\": [\n    \"agent-toolkit\",\n    \"mcp\",\n    \"modelcontextprotocol\",\n    \"mastercard\",\n    \"mastercard-developers\"\n  ],\n  \"exports\": {\n    \"./mcp\": {\n      \"types\": \"./mcp/index.d.ts\",\n      \"default\": \"./mcp/index.js\"\n    }\n  },\n  \"engines\": {\n    \"node\": \">=18\"\n  },\n  \"devDependencies\": {\n    \"@eslint/compat\": \"^1.3.1\",\n    \"@types/jest\": \"^29.5.14\",\n    \"@types/node-fetch\": \"^2.6.12\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.38.0\",\n    \"eslint-config-prettier\": \"^10.1.8\",\n    \"eslint-plugin-import\": \"^2.32.0\",\n    \"eslint-plugin-jest\": \"^28.14.0\",\n    \"eslint-plugin-prettier\": \"^5.5.3\",\n    \"husky\": \"^9.1.7\",\n    \"jest\": \"^29.7.0\",\n    \"lint-staged\": \"^16.1.2\",\n    \"prettier\": \"^3.6.2\",\n    \"ts-jest\": \"^29.2.5\",\n    \"ts-node\": \"^10.9.2\",\n    \"tsup\": \"^8.5.0\",\n    \"typescript\": \"^5.8.3\"\n  },\n  \"dependencies\": {\n    \"@modelcontextprotocol/sdk\": \"^1.27.1\",\n    \"node-fetch\": \"^2.7.0\",\n    \"zod\": \"^3.25.67\"\n  },\n  \"lint-staged\": {\n    \"*.{mjs,js,jsx,ts,tsx}\": [\n      \"prettier --ignore-unknown --ignore-path .gitignore --write\",\n      \"eslint --cache --cache-strategy content --ext .js,.ts --fix\"\n    ],\n    \"*.{yml,json,md,html,css,scss,sass}\": [\n      \"prettier --ignore-unknown --ignore-path .gitignore --write\"\n    ]\n  }\n}\n"],"mappings":"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","names":["z","z","getDescription","getParameters","execute","z","getDescription","getParameters","execute","z","fetch","getDescription","getParameters","z","execute","z","getDescription","getParameters","z","execute","z","getDescription","getParameters","execute","z","getDescription","getParameters","execute","z","getDescription","getParameters","execute","z","getDescription","getParameters","execute"]}