1. Conduid
  2. Agents
  3. Function Calling Adapter
MCP server · Agents

Function Calling Adapter

This library provides a function calling adapter for the Model Context Protocol (MCP).

37Low

Scored 6 months ago · breakdown

About Function Calling Adapter

Function Calling Adapter is an MCP server in the Agents category: this library provides a function calling adapter for the Model Context Protocol (MCP).

Install

Claude Code
claude mcp add function-calling-adapter -- npx -y mcp-function-calling-adapter
npx
npx -y mcp-function-calling-adapter

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Function Calling Adapter

Powered by Claude · Grounded in docs

I know everything about Function Calling Adapter. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

mcp-function-calling-adapter

English | 日本語

npm version Check

This library provides a function calling adapter for the Model Context Protocol (MCP).

You can use standardized MCP Server implementations directly with function calling through this library.

Installation

pnpm add mcp-function-calling-adapter

Usage

Here's an example using it with the OpenAI API:

import { McpFunctionCallingAdapter } from "mcp-function-calling-adapter"

const adapter = new McpFunctionCallingAdapter("example", {
  "sequential-thinking": {
    command: "npx",
    args: ["-y", "@modelcontextprotocol/server-sequential-thinking"],
  },
})

const openai = new OpenAI({
  apiKey: "your api key here",
})

try {
  await adapter.startServers()

  const messages = [
    {
      role: "user",
      content: "What's the weather like in Paris today?",
    },
  ]
  const completion = await openai.chat.completions.create({
    model: "gpt-4o-mini",
    messages,
    tools: adapter.getTools().map((tool) => ({
      type: "function",
      function: {
        name: tool.name,
        description: tool.description ?? "",
        parameters: tool.inputSchema,
      },
    })),
    tool_choice: "auto",
  })

  // Call tool
  const toolCall = completion.choices.at(0)?.message.tool_calls?.at(0)
  if (toolCall && adapter.isRegisteredTool(toolCall.function.name)) {
    const response = await adapter.executeTool(
      toolCall.function.name,
      JSON.parse(toolCall.function.arguments)
    )
    messages.push(completion.choices[0].message)
    messages.push({
      role: "tool",
      tool_call_id: toolCall.id,
      content: response.content.toString(),
    })
  }
} finally {
  await adapter.clean()
}

API

startServers()

Starts the MCP servers and loads available tools.

clean()

Disconnects from the MCP servers.

getTools()

Returns a list of available tools. The response includes the tool name, description, and input JSONSchema, which can be directly used for function calling schema definitions.

isRegisteredTool(name: string)

Checks if a tool with the specified name is registered and available for use.

  • name: The name of the tool to check
  • Returns: boolean - true if the tool is registered, false otherwise

executeTool(name: string, args: Record<string, unknown>)

Executes a tool with the specified name and returns the response from the MCP Server.

  • name: The name of the tool to execute
  • args: Arguments to pass to the tool

Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to submit pull requests, report issues, and contribute to the project.

Development

  1. Clone the repository
  2. Install dependencies: pnpm install
  3. Run tests: pnpm test
  4. Build: pnpm build

Changelog

See CHANGELOG.md for a list of changes and version history.

License

This project is licensed under the MIT License - see the LICENSE file for details.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Function Calling Adapter

How do I install Function Calling Adapter?

Run claude mcp add function-calling-adapter -- npx -y mcp-function-calling-adapter, then add the server to your MCP client's configuration.

Is Function Calling Adapter safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Function Calling Adapter still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.