Skip to content
Agentmart
Submit a tool

Legwork

Lets your AI find open-source tools on GitHub and install them as sandboxed MCP tools.

Connector by kumarganduri · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 4
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/kumarganduri-legwork

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Lets your AI find open-source tools on GitHub and install them as sandboxed MCP tools.

Use cases: document-processing, data-analysis

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
67 read · 21 write · 2 delete · 18 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 108

Read from the source code; the running server may list different tools.

Read 67 · Look things up without changing anything.

  • cli_help
  • compute_readability
  • conversion_factor
  • convert
  • convert_format
  • convert_notebook
  • convert_to_markdown
  • evaluate
  • extract_from_file
  • extract_from_html
  • extract_tables
  • extract_text
Show 55 more tools
  • file_to_markdown
  • get_metadata
  • get_page_objects
  • get_pdf_metadata
  • get_presentation_info
  • get_transcript
  • get_version
  • gitleaks_version
  • grayscale
  • gulpease
  • html_file_to_pdf
  • html_to_markdown
  • html_to_pdf
  • image_info
  • image_metadata
  • jsonschema_version
  • lint_sql
  • list_available_transcripts
  • list_exporters
  • list_fakes
  • list_plugins
  • list_tables
  • matplotlib_version
  • model_info
  • moviepy_version
  • osman
  • parse_ics_file
  • parse_ics_text
  • prettier_check_files
  • prettier_format_code
  • prettier_version
  • read_docx_paragraphs
  • ruff_version
  • scan_directory
  • scan_git_repository
  • scan_stdin
  • series_expansion
  • sg_rewrite
  • sg_search
  • sg_version
  • shellcheck_files
  • shellcheck_version
  • spanish_readability
  • to_latex
  • translate_transcript
  • validate_json
  • version
  • video_info
  • wiener_sachtextformel
  • yq_convert
  • yq_eval_files
  • yq_eval_string
  • yq_version
  • yt_dlp_list_extractors
  • yt_dlp_version

Write 21 · Create, change, send or run things.

  • add_text_slide
  • append_event_to_ics_file
  • append_paragraph_copy
  • bar_chart_html
  • create_docx
  • create_ics_file
  • create_presentation
  • create_solid_image
  • csvkit_run
  • histogram
  • insert_rows
  • merge_pdfs
Show 9 more tools
  • ocr_image
  • overlay_text
  • plot_line
  • prettier_write_files
  • resize_image
  • scatter
  • shellcheck_text
  • svgo_optimize_text
  • yt_dlp_download

Delete 2 · Delete, drop, revoke or wipe things.

  • execute_db
  • remove_background

Not yet classified 18 · We could not tell from the name and description.

  • crop
  • differentiate
  • duckdb_query
  • generate
  • generate_qr_png
  • generate_qr_svg
  • integrate_expr
  • qr_ascii
  • query_db
  • rotate_image
  • ruff_check
  • ruff_format
Show 6 more tools
  • simplify_expr
  • solve_zero
  • split_pdf
  • svgo_optimize_file
  • transcribe_audio
  • trim_video

Network hosts it talks to 6

  • api.github.com · found in code
  • api.openai.com · found in code
  • docs.astral.sh · found in code
  • github.com · found in code
  • glama.ai · found in code
  • raw.githubusercontent.com · found in code

Files it touches

  • ~/.ssh
  • /dev/dtracehelper
  • /dev/null
  • /dev/tty
  • /dev/zero
  • /Library/Preferences
  • /private/var/run/mDNSResponder
  • /proc/sys/kernel/apparmor_restrict_unprivileged_userns
  • /var/run
  • /var/tmp
  • Your home directory (~)
  • ~/Downloads
  • ~/Downloads/memo.m4a
  • ~/Downloads/report.pdf
  • ~/Library
  • Any path the agent passes to its tools

Tools (108)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_text_slide

    Add a 'Title and Content' text slide with optional bullet points to an existing PPTX. Writes to output_path or a new *_modified.pptx to avoid overwriting read-only inputs. Args: pptx_path: Path to the source PPTX file (read-only). title: Title for the new slide. bullets: Optional list of bullet point strings. output_path: Optional path for the modified PPTX. Defaults to <pptx_path stem>_modified.pptx in the tool's own folder (the input's folder is usually read-only). Returns: Absolute path to the saved modified PPTX file.

  • append_event_to_ics_file

    Append a VEVENT to an existing .ics file. If file doesn't exist, it is created. Returns the absolute path to the updated .ics file.

  • append_paragraph_copy

    Append a paragraph to a copy of an existing .docx, writing the new file under the current directory. Args: src_path: Path to the source .docx (read-only). text: Paragraph text to append. out_path: Optional new filename for the copied/modified document. style: Optional paragraph style name (e.g., 'Normal', 'Heading 2'). Returns: {"path": "<absolute path to new .docx>", "paragraph_count": <int>}

  • bar_chart_html

    Create an interactive bar chart with plotly and save it as a self-contained HTML file. Args: x: Categorical or numeric x-axis values. y: Numeric y-axis values. Must be the same length as x. title: Optional chart title. Returns: {"html_path": absolute path of the chart (opens offline in any browser), "size_bytes": ..., "title", "bars": [[x, y], ...], "title_in_html": whether the saved chart carries the title} Raises: ValueError: If x and y lengths differ or are empty.

  • cli_help

    Return the MarkItDown CLI help text (equivalent to `markitdown --help`). Useful for diagnostics and to discover CLI flags.

  • compute_readability

    Compute a comprehensive set of readability metrics and text statistics for the given text. - lang: language code used for syllable calculation and language-specific variants (e.g., en_US, de_DE, es_ES, it_IT, fr_FR, nl_NL, ru_RU, ar) - float_output: return text_standard as a float when True - ms_per_char: milliseconds per character for reading_time

  • conversion_factor

    Get the multiplicative conversion factor between two units. Args: from_unit: Source unit (e.g., "meter"). to_unit: Target unit (e.g., "centimeter"). Returns: The numeric factor f such that (x * from_unit).to(to_unit) == x * f * to_unit.

  • convert

    Convert a numeric value from one unit to another using Pint. Args: value: The numeric magnitude to convert. from_unit: The unit the value is currently expressed in (e.g., "meter", "cm", "kg"). to_unit: The unit to convert to (e.g., "centimeter", "m", "lb"). Returns: A dictionary with: - value: the converted numeric magnitude - unit: the target unit as a string - text: a human-readable string representation like "123.0 centimeter"

  • convert_format

    Convert an image to another format (e.g., PNG, JPEG, WEBP). Quality applies to lossy formats if supported.

  • convert_notebook

    Convert a Jupyter notebook (.ipynb) to a static format using nbconvert. - input_path: path to the .ipynb file - to: export format (e.g., "html", "markdown", "script", "rst", "latex", "notebook") - output_path: optional explicit output file path; otherwise <input name>.<ext> in the tool's own folder (input folders are read-only) - template_name: optional nbconvert template to use - exclude_outputs: if True, strip code cell outputs before exporting

  • convert_to_markdown

    Convert a local file path or URL to Markdown using MarkItDown. Returns the Markdown string. Parameters: - path_or_uri: Path to a local file or a URL supported by MarkItDown (e.g., YouTube). - enable_plugins: If True, enables any installed MarkItDown plugins during conversion.

  • create_docx

    Create a new .docx document with the given paragraphs (and optional heading) and save it. Args: paragraphs: List of paragraph texts to add in order. out_path: Optional desired filename. Will be placed under the current directory. heading: Optional heading text to add at the top (Heading 1 style). Returns: {"path": "<absolute path to saved .docx>"}

  • create_ics_file

    Create a new iCalendar (.ics) file with a single VEVENT. - dtstart/dtend: ISO 8601 strings (date or datetime), e.g. "2026-12-25" or "2026-12-25T14:00:00" - attendees: list of emails or mailto: URIs Returns the absolute path to the written .ics file.

  • create_presentation

    Create a new PPTX presentation with a title slide. Args: title: Title text for the first slide. subtitle: Optional subtitle text. output_path: Optional path to save the PPTX. If not provided, a file named generated_<uuid>.pptx is created. Returns: Absolute path to the created PPTX file.

  • create_solid_image

    Create a solid RGBA image using sharp and write it to output_path. - width/height: image dimensions in pixels. - r/g/b: 0-255 color channels. - alpha: 0.0-1.0 transparency. - format: output format (default png). - quality: optional quality for lossy formats (jpeg/webp/avif). Returns an Image that points to the written file.

Show 93 more tools
  • crop

    Crop an image to the given box (left, top, right, bottom).

  • csvkit_run

    Run a csvkit subcommand with optional arguments and optional stdin. - command: one of csvkit's CLI tools (e.g., "csvcut", "csvstat", "in2csv"). - args: list of additional CLI arguments, e.g., ["-c", "name,age"] or ["--help"]. - input_data: if provided, will be piped to the command's stdin (useful for commands that accept stdin).

  • differentiate

    Differentiate an expression with respect to a variable. Args: expr: Expression to differentiate, e.g., "sin(x)*x**2". var: Variable name to differentiate with respect to, e.g., "x". order: Order of the derivative (default 1). Returns: The derivative as a string.

  • duckdb_query

    Execute a SQL query using DuckDB. - sql: The SQL query to run. Can reference local files directly (e.g., SELECT * FROM 'data.csv';). - database_path: Optional path to a DuckDB database file. If not provided, uses an in-memory database. Returns: { "columns": [col_name, ...], "rows": [ {col_name: value, ...}, ... ] }

  • evaluate

    Evaluate an expression optionally with substitutions. Args: expr: Expression to evaluate numerically or symbolically. subs: Optional dict mapping variable names to values (strings parsable by SymPy), e.g., {"x": "pi/2", "y": "2"}. Returns: The evaluated expression or number as a string.

  • execute_db

    Execute a non-SELECT SQL statement (e.g., CREATE TABLE, INSERT, UPDATE, DELETE) against a SQLite database. Args: db_path: Path to a SQLite database file (it will be created if it does not exist). sql: The SQL statement to execute. params: Optional dictionary of named parameters for the SQL statement. Returns: The number of rows modified if available, otherwise 0.

  • extract_from_file

    Extract main text (and optionally metadata) from a local HTML file. Args: file_path: Path to a local HTML file (read-only). output_format: One of "txt", "json", "xml", "html", "markdown". Defaults to "txt". with_metadata: If True and output_format="json", include metadata fields when available. Returns: - If output_format="json": a dict with extracted content (and metadata when available). - Otherwise: a string with the extracted content in the chosen format. Raises: FileNotFoundError if the file does not exist. RuntimeError if no content could be extracted.

  • extract_from_html

    Extract main text (and optionally metadata) from an HTML string. Args: html: A string containing the full HTML document to parse. output_format: One of "txt", "json", "xml", "html", "markdown". Defaults to "txt". with_metadata: If True and output_format="json", include metadata fields when available. Returns: - If output_format="json": a dict with extracted content (and metadata when available). - Otherwise: a string with the extracted content in the chosen format. Raises: RuntimeError if no content could be extracted.

  • extract_tables

    Extract tables from a PDF using pdfplumber's table extraction. Arguments: - path: Path to a local PDF. - page: If provided, extract only this 1-indexed page; otherwise all pages. - table_settings_json: Optional JSON for table settings (see README "Table-extraction settings"). - laparams_json: Optional JSON of pdfminer.six LAParams to pass to pdfplumber.open(). - password, unicode_norm, strict_metadata: Passed to pdfplumber.open(). Returns: { "pages": [ { "page_number": int, "tables": [ [ [cell_str_or_null, ...], ... ] # rows ] } ] }

  • extract_text

    Extract text from a PDF (all pages or a single 1-indexed page). Arguments: - path: Path to a local PDF. - page: If provided, extract only this 1-indexed page; otherwise all pages. - layout: If True, attempt to preserve layout (experimental in pdfplumber). - x_tolerance, y_tolerance, x_tolerance_ratio: Passed to Page.extract_text(...). - laparams_json: Optional JSON of pdfminer.six LAParams to pass to pdfplumber.open(). - password, unicode_norm, strict_metadata: Passed to pdfplumber.open(). Returns: { "pages": [ { "page_number": int, "text": str|null } ] }

  • file_to_markdown

    Convert an HTML file to Markdown and return the Markdown text.

  • generate

    Generate fake data using Faker by provider method name. - fake_name: provider method to call (e.g., "name", "address", "profile"). - locales: optional locale string or list of locales (e.g., "en_US" or ["it_IT", "en_US"]). - repeat: number of values to generate. - args: positional arguments for the provider method. - kwargs: keyword arguments for the provider method. - use_weighting: whether to use weighted real-world frequencies (default True). - seed: optional seed to make results deterministic per instance. - unique: ensure uniqueness for generated values in this call. - unique_locale: if …

  • generate_qr_png

    Generate a QR code PNG image. - data: text to encode - out_path: file path to save (defaults to ./outputs/qr_<timestamp>.png) - version: 1..40 (size). If None, fit automatically. - error_correction: L (7%), M (15%, default), Q (25%), H (30%) - box_size: pixels per QR module - border: modules thick border (min 4) - fill_color, back_color: hex string/name or [R,G,B]

  • generate_qr_svg

    Generate a QR code SVG image. - data: text to encode - out_path: file path to save (defaults to ./outputs/qr_<timestamp>.svg) - factory: 'path' (default), 'basic', 'fragment', 'path-fill', or 'fill' - attrib: optional SVG root attributes dict (e.g., {'class': 'my-css'}) - version, error_correction, box_size, border: QR sizing options

  • get_metadata

    Return PDF document metadata as a simple dict of string keys/values. Keys are normalized without the leading '/' when present.

  • get_page_objects

    Return low-level objects for a single page: chars, lines, rects, curves, images, annots, hyperlinks. Arguments: - path: Path to a local PDF. - page: 1-indexed page number. - types: Optional subset of object types to include. Allowed values (singular): "char", "line", "rect", "curve", "image", "annot", "hyperlink". If omitted, includes all. - precision: If provided, round floating-point numbers to this many decimal places. - laparams_json: Optional JSON of pdfminer.six LAParams to pass to pdfplumber.open(). - password, unicode_norm, strict_metadata: Passed to pdfplumber.open(). Retur…

  • get_pdf_metadata

    Return basic metadata and page count for a PDF. Arguments: - path: Path to a local PDF file. - laparams_json: Optional JSON string for pdfminer.six layout analysis parameters. - password: Optional password for encrypted PDFs. - unicode_norm: Optional Unicode normalization form ("NFC","NFD","NFKC","NFKD"). - strict_metadata: If True, raise if invalid metadata is encountered. Returns: { "metadata": {..}, "page_count": N }

  • get_presentation_info

    Get basic info about a PPTX: slide count and slide titles (if any). Args: pptx_path: Path to the PPTX file. Returns: Dict with keys: - slide_count: number of slides - titles: list of title texts (empty string if none on a slide)

  • get_transcript

    Fetch the transcript for a YouTube video. Args: video_id: The YouTube video ID (not a full URL). languages: Optional list of language codes in descending priority (e.g., ["de", "en"]). preserve_formatting: If True, keep basic HTML formatting (e.g., <i>, <b>). Returns: A dict containing transcript metadata and a list of snippets with text, start, duration. Raises: RuntimeError: If retrieval fails.

  • get_version

    Return the installed sqlfluff version string.

  • gitleaks_version

    Get the gitleaks version string.

  • grayscale

    Convert an image to grayscale.

  • gulpease

    Compute the Gulpease index for Italian text.

  • histogram

    Create a histogram and return the saved PNG image.

  • html_file_to_pdf

    Convert a local HTML file to a PDF file. Args: html_file_path: Path to a local .html/.xhtml file. output_pdf_path: Optional path for the output PDF. If not provided, a file will be created under ./outputs/. base_url: Optional base URL or directory for resolving relative links (defaults to the input file's directory). Returns: A dict with: - pdf_path: absolute path to the generated PDF - size_bytes: file size in bytes - errors: number of conversion errors reported by xhtml2pdf (0 indicates none)

  • html_to_markdown

    Convert an HTML string to Markdown using python-markdownify. All options mirror the library's documented options.

  • html_to_pdf

    Convert an HTML string to a PDF file. Args: html: The HTML content to convert. output_pdf_path: Optional path for the output PDF. If not provided, a file will be created under ./outputs/. Returns: A dict with: - pdf_path: absolute path to the generated PDF - size_bytes: file size in bytes - errors: number of conversion errors reported by xhtml2pdf (0 indicates none)

  • image_info

    Inspect an image and return basic information.

  • image_metadata

    Read basic image metadata (format, width, height, etc.) using sharp. Returns a JSON-serializable dict of common fields.

  • insert_rows

    Insert multiple rows into a table using sqlite-utils' insert_all, creating the table if needed. Args: db_path: Path to the SQLite database file (created if it does not exist). table: Table name to insert into (created if it does not exist). rows: List of dictionaries representing rows to insert. pk: Optional primary key column name to set on table creation. replace: If True, use OR REPLACE behavior for conflicts. upsert: If True, update existing rows when primary key conflicts occur. ignore: If True, use OR IGNORE behavior for conflicts. Returns: A summary dic…

  • integrate_expr

    Integrate an expression with respect to a variable, optionally with limits. Args: expr: Expression to integrate, e.g., "sin(x)". var: Variable name to integrate with respect to, e.g., "x". lower: Optional lower limit as a string (e.g., "0" or "pi/2"). upper: Optional upper limit as a string. Returns: The integral as a string.

  • jsonschema_version

    Return the installed jsonschema library version string.

  • lint_sql

    Lint a SQL string using sqlfluff and return the CLI output as text. Args: sql: The SQL code to lint. dialect: SQL dialect to use (e.g., 'ansi', 'postgres', 'snowflake', etc.).

  • list_available_transcripts

    List available transcripts for a YouTube video and their metadata. Args: video_id: The YouTube video ID (not a full URL). Returns: A list of dicts with fields: video_id, language, language_code, is_generated, is_translatable, translation_languages.

  • list_exporters

    List available exporter short names provided by nbconvert.

  • list_fakes

    List available fake provider method names for the given locales and optional custom providers.

  • list_plugins

    List installed MarkItDown plugins (equivalent to `markitdown --list-plugins`).

  • list_tables

    List tables in the database, optionally including row counts. Args: db_path: Path to the SQLite database file. counts: If True, return list of dicts with table and count; otherwise return list of table names. Returns: A list of table names (strings) or a list of dicts with 'table' and 'count'.

  • matplotlib_version

    Return the installed Matplotlib version.

  • merge_pdfs

    Merge multiple PDFs into a single PDF. - pdf_paths: list of input PDF file paths (in order). - output_path: path for merged PDF. Defaults to ./merged.pdf. Returns the absolute path to the merged PDF.

  • model_info

    The speech model this tool uses, and the faster-whisper version.

  • moviepy_version

    Return the installed MoviePy version.

  • ocr_image

    Run OCR on a local image using RapidOCR (ONNX Runtime). - image_path: Path to a local image file (read-only). - visualize: If True, saves a visualization image with detected boxes and recognized text. Returns the recognized text, each line with its confidence and box, and optional elapsed time and visualization path.

  • osman

    Compute the OSMAN readability score (Arabic).

  • overlay_text

    Draw simple text onto an image at (x, y) using the default bitmap font.

  • parse_ics_file

    Parse an iCalendar (.ics) file from disk and return a summary of calendar-level properties and VEVENTs.

  • parse_ics_text

    Parse iCalendar (.ics) content and return a summary of calendar-level properties and VEVENTs. Returns dict: { "calendar": {...}, "events": [ {summary, dtstart, dtend, ...}, ... ] }

  • plot_line

    Create a line plot and return the saved PNG image.

  • prettier_check_files

    Check files for Prettier formatting issues without writing changes. Returns Prettier's combined output (stdout/stderr).

  • prettier_format_code

    Format a code string with Prettier and return the formatted code. Parameters: - code: the source code to format - parser: optional Prettier parser (e.g., 'babel', 'typescript', 'json', 'markdown', 'html', 'css', 'yaml') - filepath_hint: optional pseudo filename to help Prettier infer the parser (e.g., 'file.ts', 'notes.md') - config_path: path to a Prettier config file to use - print_width, tab_width: numeric formatting options - use_tabs, single_quote, semi: boolean formatting options - trailing_comma: string option (e.g., 'none', 'es5', 'all')

  • prettier_version

    Get the installed Prettier CLI version string.

  • prettier_write_files

    Format and write changes to the given files in-place. Returns Prettier's output summary.

  • qr_ascii

    Generate ASCII art for a QR code and return it as text. - data: text to encode - border: modules thick border (min 0) - invert: swap foreground/background

  • query_db

    Execute a read-only SQL query against a SQLite database using sqlite-utils and return rows as a list of dicts. Args: db_path: Path to a SQLite database file (it will be created if it does not exist). sql: The SQL query to execute. params: Optional dictionary of named parameters for the SQL query. Returns: A list of dictionaries, one per row.

  • read_docx_paragraphs

    Read all paragraph texts from a .docx file. Args: path: Path to an existing .docx file. Returns: {"paragraphs": ["para1", "para2", ...]}

  • remove_background

    Remove the background from an image file and save a PNG with transparency. - input_path: Path to the input image file. - output_path: Optional output path. If omitted, writes to ./outputs/<stem>.out.png. - model: Model name (e.g., 'u2net', 'u2netp', 'isnet-general-use', 'birefnet-general', 'bria-rmbg', etc.). Default 'u2net' for fast, small offline use. - alpha_matting: Enable alpha matting refinement (slower). - decontaminate: Enable edge color decontamination. - only_mask: Return only the mask (grayscale). - post_process_mask: Post-process mask to binary. - bgcolor: Background replacement c…

  • resize_image

    Resize and/or convert an image using sharp. - input_path: path to an existing image file. - output_path: where to write the result (extension may imply format). - width/height: target dimensions (either or both). - format: optional explicit output format (jpeg/jpg/png/webp/gif/avif). - fit: resizing fit mode (default inside). - auto_orient: rotate based on EXIF. - quality: optional quality for lossy formats (jpeg/webp/avif). Returns an Image that points to the written file.

  • rotate_image

    Rotate an image by angle degrees. Use expand=True to grow the canvas to fit.

  • ruff_check

    Run 'ruff check' to lint Python files. - paths: files or directories to lint; defaults to current directory if not provided. - fix: apply automatic fixes (equivalent to --fix). - select: list of rule codes to select (e.g., ["F401", "E501"]). - ignore: list of rule codes to ignore. - config: inline configuration or path to a ruff config file (passed via --config). - preview: enable preview mode (--preview). - quiet: reduce output verbosity (--quiet). - extra_args: additional raw arguments passed through as-is.

  • ruff_format

    Run 'ruff format' to format Python files. - paths: files or directories to format; defaults to current directory if not provided. - check: don't write changes; exit non-zero if files would be reformatted (--check). - diff: print the diff of changes that would be made (--diff). - quiet: reduce output verbosity (--quiet). - preview: enable preview mode (--preview). - extra_args: additional raw arguments passed through as-is.

  • ruff_version

    Get the Ruff version string.

  • scan_directory

    Scan a directory or file path for secrets and return findings as a JSON list.

  • scan_git_repository

    Scan a git repository for secrets and return findings as a JSON list.

  • scan_stdin

    Scan the provided string for secrets via stdin and return findings as a JSON list.

  • scatter

    Create a scatter plot and return the saved PNG image.

  • series_expansion

    Compute the series expansion of an expression. Args: expr: Expression, e.g., "1/cos(x)". var: Variable name, e.g., "x". point: Expansion point (default "0"). order: Series order (e.g., 6 means terms up to O((x - point)**6)). Returns: The series as a string (including the big-O term).

  • sg_rewrite

    Preview or perform rewrite using an AST pattern. - pattern: match pattern - rewrite: replacement template - lang: language for parsing - path: directory or file to operate on - dry_run: if True, only previews changes (does not write). If False, attempts to write changes.

  • sg_search

    Search for AST pattern within a path. - pattern: ast-grep pattern, e.g., 'var code = $PATTERN' - lang: language for parsing (e.g., ts, js, py, rs, etc.) - path: directory or file to search (default '.') - json_output: output matches in JSON format

  • sg_version

    Get ast-grep version string.

  • shellcheck_files

    Lint one or more shell script files and return structured diagnostics. - paths: list of file paths to analyze - shell: e.g. "bash", "sh", "dash", "ksh" - severity: minimum severity to display: "error", "warning", "info", or "style" - exclude_codes: list of rule codes (e.g. ["SC2086","SC2046"]) to suppress - include_dirs: list of directories to search for 'source'd files (-I) - allow_external_sources: if True, allow external sources (-x)

  • shellcheck_text

    Lint a shell script provided as text and return structured diagnostics. - script: the shell script contents - shell: e.g. "bash", "sh", "dash", "ksh" - severity: minimum severity to display: "error", "warning", "info", or "style" - exclude_codes: list of rule codes (e.g. ["SC2086","SC2046"]) to suppress - include_dirs: list of directories to search for 'source'd files (-I) - allow_external_sources: if True, allow external sources (-x)

  • shellcheck_version

    Return ShellCheck version string (shellcheck --version).

  • simplify_expr

    Simplify a symbolic expression. Args: expr: A SymPy-parsable expression string, e.g., "sin(x)**2 + cos(x)**2". Returns: The simplified expression as a string.

  • solve_zero

    Solve expr = 0 for a single variable using solveset. Args: expr: Expression to solve, e.g., "x**2 - 4". var: Variable name to solve for, e.g., "x". Returns: A string representation of the solution set (can be a set, FiniteSet, ConditionSet, etc.).

  • spanish_readability

    Compute Spanish-specific readability metrics.

  • split_pdf

    Split a PDF into single-page PDFs. - output_dir: directory to write outputs (created if needed). Defaults to ./split_<basename>. Returns a list of absolute paths to the created PDFs.

  • svgo_optimize_file

    Optimize a single SVG file with SVGO. Args: input_path: Path to an existing .svg file (read-only). output_path: Optional path for the optimized SVG. If omitted, writes to ./out/<name>.min.svg. multipass: If true, run SVGO in multipass mode. Returns: Absolute path to the optimized SVG file.

  • svgo_optimize_text

    Optimize an SVG provided as a string. Args: svg: SVG content as a UTF-8 string. multipass: If true, run SVGO in multipass mode. Returns: Optimized SVG content as a string.

  • to_latex

    Convert an expression to LaTeX. Args: expr: Expression string, e.g., "sin(x)/x". Returns: The LaTeX string.

  • transcribe_audio

    Transcribe speech in an audio or video file to text, offline. Accepts common formats: m4a (voice memos), mp3, wav, flac, ogg, opus, aac, mp4, mov, mkv, webm. Multilingual: the language is detected unless given. Args: audio_path: Path to the file (read-only). language: Optional language code hint, e.g. "en", "es", "hi". task: "transcribe" (keep the spoken language) or "translate" (into English). word_timestamps: Also return per-word timings. Returns: {"text", "language", "language_probability", "duration_seconds", "segments": [{start, end, text}]}, with "warning" first when the l…

  • translate_transcript

    Translate a transcript to a target language using YouTube's translation feature. Args: video_id: The YouTube video ID. source_languages: List of language codes to search for the original transcript (e.g., ["en"]). target_language: Language code to translate to (e.g., "de"). preserve_formatting: If True, keep basic HTML formatting. Returns: A dict of the translated transcript metadata and snippets.

  • trim_video

    Trim a local video between start and end (in seconds) and write it to an output file. - input_path: path to the source video (must exist). - start: start time in seconds (optional). - end: end time in seconds (optional). - output_path: output file name (defaults to <input_stem>_trimmed.mp4 in the tool's own folder; the folder the input is in is usually read-only). - codec: video codec to use (default: libx264). - fps: output frames per second (optional; uses source FPS if None). - audio: whether to include audio (default: True). - audio_codec: audio codec (default: aac). Ignored if audio=Fa…

  • validate_json

    Validate a JSON instance against a JSON Schema. Args: instance: The JSON data to validate (any JSON-serializable value). schema: The JSON Schema to validate against. draft: Which JSON Schema draft to use. One of: "auto" (default), "2020-12", "2019-09", "7", "6", "4", "3". format_checks: If True, enable format checking (requires extras installed). max_errors: If set, stop collecting further errors after this many. Returns: A dict with: - valid: bool indicating whether the instance is valid. - error_count: number of validation errors found. - errors: list of er…

  • version

    Return the installed Trafilatura version.

  • video_info

    Read basic metadata (duration, fps, size) from a local video.

  • wiener_sachtextformel

    Compute the Wiener Sachtextformel (German) readability score. - variant: select formula variant (integer as per textstat docs) - lang: language code (defaults to de_DE)

  • yq_convert

    Convert content from one format to another using yq. Equivalent to running '.' as the expression. - content: the input document(s) as a string. - input_format: parse format (e.g., json, yaml, xml, ini, toml, hcl, csv, tsv, props). - output_format: output format (e.g., json, yaml, xml, ini, toml, hcl, csv, tsv, props). - pretty_print: pretty print output when applicable (e.g., yaml).

  • yq_eval_files

    Evaluate a yq expression against one or more files. - expression: jq-like expression to run. - files: list of file paths to process; if omitted, reads from STDIN (use yq_eval_string instead). - input_format: one of [auto|yaml|json|kyaml|props|csv|tsv|xml|base64|uri|toml|hcl|lua|ini]. - output_format: one of [auto|yaml|json|kyaml|props|csv|tsv|xml|base64|uri|toml|hcl|shell|lua|ini]. - pretty_print: pretty print output (shorthand for '... style = ""' for yaml). - unwrap_scalar: print just the scalar value with no quotes/colors/comments (equivalent to -r). - null_input: do not read input, just e…

  • yq_eval_string

    Evaluate a yq expression on in-memory content provided via STDIN. - expression: jq-like expression to run. - content: the input document(s) as a string. - input_format: parse format (yaml/json/xml/etc.). Defaults to auto if not set. - output_format: output format (yaml/json/xml/etc.). Defaults to auto if not set. - pretty_print: pretty print output (for yaml pretty-print). - unwrap_scalar: print just the scalar value without quotes/colors/comments (-r).

  • yq_version

    Get yq version string.

  • yt_dlp_download

    Download media or extract info using yt-dlp. - urls: One or more URLs to process - output_dir: Directory to place outputs (default: current directory) - output_template: Custom output template (default: "%(title)s [%(id)s].%(ext)s") - format: Optional format selector (e.g., "bestvideo+bestaudio/best") - simulate: If True, do not download; only extract info and compute filenames - flat_playlist: If True, do not resolve playlist entries fully - restrict_filenames: If True, restrict filenames to ASCII and avoid special chars - verbose: If True, emit verbose logs

  • yt_dlp_list_extractors

    List all supported extractor names.

  • yt_dlp_version

    Get yt-dlp version string.

Signals

Stars
4
Forks
1
Open issues
2
Weekly downloads
342
Last commit
Oct 18, 2026 (11 days ago)
Last release
Oct 25, 2026 (4 days ago)
Last package publish
Oct 18, 2026 (11 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.kumarganduri/legwork
Version
0.7.16
Auth
No auth
Packages
pypi legwork-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 26, 2026
Cite this page

Legwork MCP server. Agent Mart. https://agentmart.dev/connectors/kumarganduri-legwork (last updated 2026-10-26)