Skip to main content
Glama
yanmxa

ScriptFlow MCP Server

by yanmxa

ScriptFlow MCP Server

npm version License: MIT

ScriptFlow is a script workflow management system built on the Model Context Protocol (MCP). It transforms complex, repetitive AI interactions into persistent, executable scripts that can be managed, version-controlled, and reused across sessions.

Why ScriptFlow?

  1. Transform Workflows into Scripts: Convert successful AI interactions into reusable, executable scripts

  2. Save Time & Tokens: Execute complex tasks instantly instead of repeating long conversations

  3. Guaranteed Consistency: Scripts run the same way every time, eliminating AI randomness

  4. Powerful Management: Search, organize, edit, and version your automation library

  5. Team Collaboration: Share proven workflows across your organization

Related MCP server: RelayPlane

Features

  • Add/Edit/Remove scripts with metadata

  • List/Search scripts by name, description, or tags

  • Execute scripts with arguments

  • Multi-language support (Bash, Python, Node.js, TypeScript)

Setup

Add to your MCP client config (e.g., Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "scriptflow": {
      "command": "npx",
      "args": ["scriptflow-mcp"],
      "env": {
        "SCRIPTFLOW_SCRIPTS_DIR": "/your/custom/path"
      }
    }
  }
}

Environment Variables:

  • SCRIPTFLOW_SCRIPTS_DIR: Scripts directory (default: /tmp/scriptflow-mcp/scripts)

  • SCRIPTFLOW_TIMEOUT: Execution timeout in ms (default: 30000)

Available Tools

  • script_add - Add new script (name, description, content, language, tags)

  • script_edit - Update existing script

  • script_get - View script details

  • script_list - Search/filter scripts

  • script_run - Execute script with arguments

  • script_rm - Remove script

Quick Example

// Add script
{"name": "hello", "description": "Hello script", "content": "echo 'Hello!'"}

// Run script  
{"name": "hello", "args": ["World"]}

// List scripts
{"search": "hello"}

Storage

Scripts stored as {name}.{ext} + {name}.json metadata files. Supports: Bash (.sh), Python (.py), JavaScript (.js), TypeScript (.ts)

Testing

# Run tests
npm test

# Test with MCP Inspector
npx @modelcontextprotocol/inspector npx scriptflow-mcp

Available Tools

6 tools
script_addB

Add a new script to the repository

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesScript name (without extension)
tagsNoOptional tags for categorization
contentYesScript content/code
languageNoProgramming language (bash, python, node, etc.)bash
parametersNoOptional parameter descriptions
descriptionYesDescription of what the script does

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 does not explain what happens if a script with the same name already exists (e.g., overwrite, error), whether the operation is idempotent, or what the response contains. It also does not disclose any side effects (e.g., file system writes, repository updates).

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

Conciseness4/5

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

The description is a single short sentence that is clear and economical. It lacks wasted words, though it is so minimal that it could have been expanded slightly to include behavioral or usage cues without hurting conciseness.

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?

The tool has 6 parameters but no output schema and no annotations. The description does not explain return values, error conditions, or naming conventions. For a creation operation, key details like duplicate handling and permissions are missing. The description only covers the basic purpose, leaving significant contextual 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?

The input schema already provides rich descriptions for all 6 parameters (100% coverage), so the description does not need to add parameter detail. However, the description also does not add any extra context or relationships between parameters beyond what the schema states, keeping it at the baseline.

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 action ('Add') and the resource ('a new script to the repository'). This unambiguously distinguishes it from sibling tools like script_list, script_run, script_edit, script_rm, and script_get, which cover viewing, executing, modifying, and deleting scripts.

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 does not mention that it should be used for creating new scripts, or when not to use it (e.g., when editing an existing script with script_edit). The intended usage is only implied by the verb 'Add'.

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

script_editB

Edit an existing script

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the script to edit
tagsNoUpdated tags for categorization
contentNoUpdated script content/code
languageNoUpdated programming language
parametersNoUpdated parameter descriptions
descriptionNoUpdated description

TDQS

B3/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It merely states the verb 'edit' without explaining side effects, whether it performs a full or partial update, error handling, or permissions. This is insufficient 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, direct sentence with no filler. It is appropriately short and front-loaded, wasting no words.

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?

Despite having a complete schema, the tool lacks annotations and an output schema, and the description is minimal. It does not convey critical context such as whether editing replaces or merges fields, whether the script must exist, or what the tool returns. For a 6-parameter mutation tool, this is inadequate.

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 describes all six parameters with clear descriptions (e.g., 'Updated tags for categorization'), so the description does not need to repeat them. However, the description adds no additional semantic context beyond what the schema already provides, so the baseline 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 phrase 'Edit an existing script' clearly defines the action (edit) and the resource (script), and the word 'existing' distinguishes it from creation tools like script_add. This is a specific and unambiguous statement of purpose.

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 script_add, script_get, or other siblings. There is no mention of prerequisites, conditions, or exclusions, leaving 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.

script_getB

Get detailed information about a specific script

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the script to get details for
include_contentNoWhether to include the script content in the response

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 full responsibility for behavioral disclosure. It indicates a read operation ('Get') but does not state whether the tool is read-only, what happens if the script does not exist, or what 'detailed information' entails. The include_content parameter suggests content may be returned, but this is not explained in the description.

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 short sentence that directly states the tool's purpose. It contains no superfluous information and is 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?

For a simple get operation with two parameters and no output schema, the description covers the essential purpose but lacks details about the return value, error behavior, or the distinction between metadata and content. Given the tool's simplicity, the description is minimally adequate but leaves room for improvement.

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% parameter description coverage: 'name' is clearly described as the script name, and 'include_content' is defined as whether to include script content. The description adds no additional meaning beyond the schema, so 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.

Purpose4/5

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

The description 'Get detailed information about a specific script' clearly identifies the action (get) and the resource (specific script), which differentiates it from sibling tools like script_list (list all scripts) or script_run (execute). It is specific and unambiguous.

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 explicit guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or relationships to sibling tools. Usage is only implied by the word 'specific', which suggests it is for retrieving details on one script, but this is not clearly stated.

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

script_listC

List and discover available scripts

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional tag to filter scripts
searchNoOptional search term to filter scripts

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'List and discover available scripts' without disclosing read-only nature, output format, pagination, or any side effects. It adds no behavioral context beyond the name.

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

Conciseness3/5

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

The description is very short and front-loaded, but 'List and discover' is mildly redundant. It is a single sentence with no unnecessary detail, yet it omits useful information that could be included without bloat.

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 absence of an output schema and annotations, the description should at least mention what the returned list contains or how it complements script_get. It lacks any indication of return value structure, workspace scope, or usage flow, making it incomplete.

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?

Both 'tag' and 'search' parameters are fully documented in the input schema with descriptions, so the baseline is 3. The description adds no additional semantic detail about how filters interact with the list.

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 identifies the tool's function as listing/discovering scripts, using specific verbs 'list' and 'discover' on the 'scripts' resource. It differentiates from siblings like script_add/rm/run by operation type, though it does not explicitly reference alternatives, so it falls short of a 5.

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 script_get or whether to combine with tag/search filters. The description lacks any contextual cues or exclusions, leaving the agent to infer usage.

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

script_rmB

Remove a script from the repository

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the script to remove

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 full responsibility for disclosing behavioral traits. It does not mention whether removal is permanent, whether it affects file system or version history, or any permissions needed. For a destructive operation, this is a significant gap.

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 concise sentence: 'Remove a script from the repository'. It is appropriately sized for the tool's simplicity, contains no redundancy, and is immediately understandable.

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?

The tool is a mutation with no annotations and no output schema. The description only states the action, but does not explain consequences (e.g., permanence, error behavior if script does not exist, or administrative requirements). The description is too sparse to fully inform an agent about the tool's behavior.

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 describes the 'name' parameter as 'Name of the script to remove', and the schema coverage is 100%. The tool description does not add any additional meaning beyond the schema, so the baseline 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 uses a specific verb 'Remove' with a clear resource 'script from the repository', and it distinguishes itself from sibling tools like script_add, script_list, script_run, script_edit, and script_get by clearly indicating the delete operation.

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?

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no exclusions. The description only states what the tool does, not when to choose it over sibling tools. The existence of sibling tools is implied but not explicitly contrasted.

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

script_runC

Execute a script by name

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoOptional arguments to pass to the script
nameYesName of the script to run

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 must carry the full burden of disclosing behavior. It only says 'Execute a script by name' and does not explain what execution entails (e.g., return values, async behavior, side effects, error handling), leaving the agent to guess.

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

Conciseness2/5

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

The description is ultra-short but under-specified. It is a fragment rather than a complete sentence and lacks essential context, making it more under-specification than effective conciseness.

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 no annotations, no output schema, and only a two-parameter schema, the description should provide more behavioral and usage context. It does not explain what result the agent can expect or any side effects, making it incomplete for reliable invocation.

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 baseline is 3. The description adds no significant meaning beyond the schema; it only restates that the script is identified by name, while the schema already documents both parameters adequately.

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 states a specific action ('Execute') on a specific resource ('script') with the key selector ('by name'). This clearly distinguishes it from sibling tools like script_add, script_list, and script_rm, which perform other CRUD-like operations.

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?

There is no guidance on when to use this tool versus alternatives. The description does not mention that this is for running a script as opposed to adding, listing, editing, or removing one, nor any prerequisites or context.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.2
    • First observedscript_add
    • First observedscript_edit
    • First observedscript_get
    • First observedscript_list
    • First observedscript_rm
    • First observedscript_run

TDQS

A3.5/5.0
Disambiguation5/5

Each tool maps to a distinct action on scripts: add, list, run, edit, rm, and get. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow the consistent pattern 'script_' followed by a clear verb (add, list, run, edit, rm, get). This creates a predictable and intuitive naming scheme.

Tool Count5/5

With 6 tools, the set is well-scoped for managing scripts. Each tool serves a necessary function without unnecessary bloat or gaps.

Completeness5/5

The toolset covers the full lifecycle of scripts: create (add), read (get, list), update (edit), delete (rm), and execution (run). No obvious missing operations for the stated domain.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables management and execution of Python scripts with automatic LLM-extracted argument schemas and validation. Provides script registry, execution history, and intelligent argument parsing like make but for Python scripts.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Enables efficient AI workflow orchestration by chaining multi-step LLM operations while keeping intermediate results out of the context window, reducing token usage by 90%+ and supporting multiple AI providers.
    7
    26
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to programmatically create, manage, and execute independent Python workflow scripts with full CRUD operations, allowing AI to build and modify automation workflows themselves rather than just executing pre-built ones.
    6
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yanmxa/scriptflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server