Skip to main content
Glama
alxspiker

AI Meta MCP Server

AI Meta MCP 服务器

动态 MCP 服务器,允许 AI 模型通过元函数架构创建并执行自定义工具。该服务器提供了一种机制,允许 AI 通过在运行时定义自定义函数来扩展自身功能。

特征

  • 动态工具创建:AI 可以通过自定义实现来定义新工具

  • 多运行环境:支持 JavaScript、Python 和 Shell 执行

  • 沙盒安全:工具在隔离的沙盒中运行以确保安全

  • 持久性:在会话之间存储和加载自定义工具定义

  • 灵活的工具注册表:管理、列出、更新和删除自定义工具

  • 人工审批流程:工具创建和执行需要明确的人工审批

Related MCP server: Code Executor MCP Server

安全注意事项

⚠️警告:此服务器允许动态代码执行。请谨慎使用,并仅在受信任的环境中使用。

  • 所有代码都在沙盒环境中执行

  • 工具创建和执行需要人工审核

  • 可通过环境变量配置工具执行权限

  • 所有操作的审计日志

安装

npm install ai-meta-mcp-server

用法

运行服务器

npx ai-meta-mcp-server

配置

环境变量:

  • ALLOW_JS_EXECUTION :启用 JavaScript 执行(默认值:true)

  • ALLOW_PYTHON_EXECUTION :启用 Python 执行(默认值:false)

  • ALLOW_SHELL_EXECUTION :启用 Shell 执行(默认值:false)

  • PERSIST_TOOLS :在会话之间保存工具(默认值:true)

  • TOOLS_DB_PATH :存储工具数据库的路径(默认值:“./tools.json”)

使用 Claude Desktop 运行

将其添加到您的claude_desktop_config.json中:

{
  "mcpServers": {
    "ai-meta-mcp": {
      "command": "npx",
      "args": ["-y", "ai-meta-mcp-server"],
      "env": {
        "ALLOW_JS_EXECUTION": "true",
        "ALLOW_PYTHON_EXECUTION": "false",
        "ALLOW_SHELL_EXECUTION": "false"
      }
    }
  }
}

工具创建示例

在 Claude Desktop 中,您可以创建一个这样的新工具:

Can you create a tool called "calculate_compound_interest" that computes compound interest given principal, rate, time, and compounding frequency?

Claude 将使用define_function元工具来创建您的新工具,该工具可立即使用。

建筑学

该服务器实现了模型上下文协议(MCP),并提供了一个元工具架构,使得人工智能驱动的功能在安全边界内注册和执行成为可能。

执照

麻省理工学院

Available Tools

5 tools
define_functionC

Create a new custom MCP function that the AI can use

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the new function
descriptionYesDescription of what the function does
parameters_schemaYesJSON Schema for parameters
implementation_codeYesCode to implement the function
execution_environmentNoEnvironment to execute the code injavascript

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions needed, whether creation is idempotent, error handling, or side effects, which is inadequate for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of creating a custom function with 5 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on return values, error cases, or how the function integrates with the MCP system, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond what's in the schema, such as explaining parameter interactions or constraints, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new custom MCP function'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'update_function' or specify that this is for initial creation only, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'update_function' or 'delete_function'. The description lacks context about prerequisites, such as whether functions must be unique or if this overrides existing ones, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_functionB

Delete a custom MCP function

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the function to delete

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this action is reversible, requires specific permissions, or has side effects (e.g., breaking dependencies). It also doesn't describe the response format or error conditions, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and efficient. Every word earns its place by conveying essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature and lack of annotations or output schema, the description is incomplete. It doesn't address critical context like irreversible deletion, permission requirements, error handling, or what happens upon success. For a mutation tool with no structured safety hints, more behavioral detail is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'name' parameter fully documented in the schema itself. The description adds no additional parameter semantics beyond what the schema provides (e.g., format examples, validation rules, or edge cases). Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Delete') and the resource ('a custom MCP function'), making the purpose immediately understandable. It distinguishes this tool from its siblings (define_function, get_function_details, list_functions, update_function) by focusing on the deletion operation rather than creation, retrieval, listing, or modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the function must exist), consequences (e.g., irreversible deletion), or when to choose delete_function over update_function for removing functionality. Without such context, the agent lacks usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_function_detailsB

Get details of a custom MCP function

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the function to get details for

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get details') but doesn't describe traits like whether it's read-only (implied but not explicit), error handling for invalid names, or response format (e.g., returns JSON with function properties). This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence ('Get details of a custom MCP function') that directly states the purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks context on usage, behavioral details, or output, which are needed for full completeness in a server with multiple function-related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'name' parameter documented as 'Name of the function to get details for'. The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('details of a custom MCP function'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_functions' (which might return summaries vs. detailed information) or 'define_function' (which creates vs. retrieves), missing the specific distinction needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios like retrieving metadata for a known function name, nor does it contrast with 'list_functions' for browsing or 'update_function' for modifications, leaving the agent without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_functionsB

List all custom MCP functions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't mention whether this is a read-only operation, what format the list returns (e.g., paginated, sorted), or any limitations (e.g., rate limits, authentication needs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it immediately understandable without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description is minimally adequate but lacks completeness. It doesn't explain return values, behavioral traits, or usage context, leaving gaps that could hinder an agent's understanding despite the simple input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter details, but that's appropriate here, meeting the baseline for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('all custom MCP functions'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get_function_details' which might retrieve a single function, but the scope 'all' provides some implicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_function_details' for single functions or 'define_function' for creating new ones. The description lacks context about prerequisites, timing, or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_functionC

Update an existing custom MCP function

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the function to update
descriptionNoNew description of what the function does
parameters_schemaNoNew JSON Schema for parameters
implementation_codeNoNew code to implement the function
execution_environmentNoNew environment to execute the code in

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states it's an update operation, implying mutation, but doesn't disclose permissions needed, whether changes are reversible, error handling (e.g., if the function doesn't exist), or rate limits. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral details (e.g., side effects, error cases) and doesn't explain what happens upon success (e.g., returns updated function details). For a 5-parameter update operation, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain parameter interactions or constraints). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and resource ('an existing custom MCP function'), making the purpose immediately understandable. It distinguishes from sibling tools like 'define_function' (create) and 'delete_function' (remove), though it doesn't explicitly contrast with 'get_function_details' or 'list_functions'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., the function must exist), when not to use it, or how it differs from 'define_function' for modifications versus creation. This leaves the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • Changedlist_functions1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 5 tool updates
    • First observeddefine_function
    • First observeddelete_function
    • First observedget_function_details
    • First observedlist_functions
    • First observedupdate_function

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting different operations on custom MCP functions: define (create), delete, get details, list all, and update. There is no overlap or ambiguity between these CRUD operations.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., define_function, delete_function, get_function_details, list_functions, update_function). The naming is uniform and predictable throughout the set.

Tool Count5/5

With 5 tools, this server is well-scoped for managing custom MCP functions. Each tool serves a clear and necessary purpose, covering the essential operations without being excessive or insufficient.

Completeness5/5

The tool set provides complete CRUD coverage for the domain of custom MCP functions: define (create), list, get details, update, and delete. There are no obvious gaps, and agents can handle the full lifecycle of functions.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides sandboxed code execution for AI agents with support for Python, JavaScript, and shell commands. Includes comprehensive safety features like destructive pattern blocking, timeout protection, and restricted file access for secure production use.
    14 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables dynamic creation and execution of custom tools/functions in multiple programming languages at runtime, exposing them to MCP clients like Claude.
    4
    9 npm
    44
    MIT