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
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.
About
Use cases: document-processing, data-analysis
Reviews
Write a reviewNo 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_helpcompute_readabilityconversion_factorconvertconvert_formatconvert_notebookconvert_to_markdownevaluateextract_from_fileextract_from_htmlextract_tablesextract_text
Show 55 more tools
file_to_markdownget_metadataget_page_objectsget_pdf_metadataget_presentation_infoget_transcriptget_versiongitleaks_versiongrayscalegulpeasehtml_file_to_pdfhtml_to_markdownhtml_to_pdfimage_infoimage_metadatajsonschema_versionlint_sqllist_available_transcriptslist_exporterslist_fakeslist_pluginslist_tablesmatplotlib_versionmodel_infomoviepy_versionosmanparse_ics_fileparse_ics_textprettier_check_filesprettier_format_codeprettier_versionread_docx_paragraphsruff_versionscan_directoryscan_git_repositoryscan_stdinseries_expansionsg_rewritesg_searchsg_versionshellcheck_filesshellcheck_versionspanish_readabilityto_latextranslate_transcriptvalidate_jsonversionvideo_infowiener_sachtextformelyq_convertyq_eval_filesyq_eval_stringyq_versionyt_dlp_list_extractorsyt_dlp_version
Write 21 · Create, change, send or run things.
add_text_slideappend_event_to_ics_fileappend_paragraph_copybar_chart_htmlcreate_docxcreate_ics_filecreate_presentationcreate_solid_imagecsvkit_runhistograminsert_rowsmerge_pdfs
Show 9 more tools
ocr_imageoverlay_textplot_lineprettier_write_filesresize_imagescattershellcheck_textsvgo_optimize_textyt_dlp_download
Delete 2 · Delete, drop, revoke or wipe things.
execute_dbremove_background
Not yet classified 18 · We could not tell from the name and description.
cropdifferentiateduckdb_querygenerategenerate_qr_pnggenerate_qr_svgintegrate_exprqr_asciiquery_dbrotate_imageruff_checkruff_format
Show 6 more tools
simplify_exprsolve_zerosplit_pdfsvgo_optimize_filetranscribe_audiotrim_video
Network hosts it talks to 6
api.github.com· found in codeapi.openai.com· found in codedocs.astral.sh· found in codegithub.com· found in codeglama.ai· found in coderaw.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_slideAdd 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_fileAppend 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_copyAppend 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_htmlCreate 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_helpReturn the MarkItDown CLI help text (equivalent to `markitdown --help`). Useful for diagnostics and to discover CLI flags.
compute_readabilityCompute 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_factorGet 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.
convertConvert 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_formatConvert an image to another format (e.g., PNG, JPEG, WEBP). Quality applies to lossy formats if supported.
convert_notebookConvert 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_markdownConvert 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_docxCreate 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_fileCreate 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_presentationCreate 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_imageCreate 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
cropCrop an image to the given box (left, top, right, bottom).
csvkit_runRun 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).
differentiateDifferentiate 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_queryExecute 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, ...}, ... ] }
evaluateEvaluate 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_dbExecute 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_fileExtract 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_htmlExtract 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_tablesExtract 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_textExtract 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_markdownConvert an HTML file to Markdown and return the Markdown text.
generateGenerate 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_pngGenerate 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_svgGenerate 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_metadataReturn PDF document metadata as a simple dict of string keys/values. Keys are normalized without the leading '/' when present.
get_page_objectsReturn 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_metadataReturn 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_infoGet 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_transcriptFetch 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_versionReturn the installed sqlfluff version string.
gitleaks_versionGet the gitleaks version string.
grayscaleConvert an image to grayscale.
gulpeaseCompute the Gulpease index for Italian text.
histogramCreate a histogram and return the saved PNG image.
html_file_to_pdfConvert 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_markdownConvert an HTML string to Markdown using python-markdownify. All options mirror the library's documented options.
html_to_pdfConvert 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_infoInspect an image and return basic information.
image_metadataRead basic image metadata (format, width, height, etc.) using sharp. Returns a JSON-serializable dict of common fields.
insert_rowsInsert 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_exprIntegrate 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_versionReturn the installed jsonschema library version string.
lint_sqlLint 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_transcriptsList 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_exportersList available exporter short names provided by nbconvert.
list_fakesList available fake provider method names for the given locales and optional custom providers.
list_pluginsList installed MarkItDown plugins (equivalent to `markitdown --list-plugins`).
list_tablesList 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_versionReturn the installed Matplotlib version.
merge_pdfsMerge 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_infoThe speech model this tool uses, and the faster-whisper version.
moviepy_versionReturn the installed MoviePy version.
ocr_imageRun 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.
osmanCompute the OSMAN readability score (Arabic).
overlay_textDraw simple text onto an image at (x, y) using the default bitmap font.
parse_ics_fileParse an iCalendar (.ics) file from disk and return a summary of calendar-level properties and VEVENTs.
parse_ics_textParse iCalendar (.ics) content and return a summary of calendar-level properties and VEVENTs. Returns dict: { "calendar": {...}, "events": [ {summary, dtstart, dtend, ...}, ... ] }
plot_lineCreate a line plot and return the saved PNG image.
prettier_check_filesCheck files for Prettier formatting issues without writing changes. Returns Prettier's combined output (stdout/stderr).
prettier_format_codeFormat 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_versionGet the installed Prettier CLI version string.
prettier_write_filesFormat and write changes to the given files in-place. Returns Prettier's output summary.
qr_asciiGenerate 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_dbExecute 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_paragraphsRead all paragraph texts from a .docx file. Args: path: Path to an existing .docx file. Returns: {"paragraphs": ["para1", "para2", ...]}
remove_backgroundRemove 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_imageResize 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_imageRotate an image by angle degrees. Use expand=True to grow the canvas to fit.
ruff_checkRun '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_formatRun '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_versionGet the Ruff version string.
scan_directoryScan a directory or file path for secrets and return findings as a JSON list.
scan_git_repositoryScan a git repository for secrets and return findings as a JSON list.
scan_stdinScan the provided string for secrets via stdin and return findings as a JSON list.
scatterCreate a scatter plot and return the saved PNG image.
series_expansionCompute 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_rewritePreview 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_searchSearch 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_versionGet ast-grep version string.
shellcheck_filesLint 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_textLint 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_versionReturn ShellCheck version string (shellcheck --version).
simplify_exprSimplify 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_zeroSolve 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_readabilityCompute Spanish-specific readability metrics.
split_pdfSplit 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_fileOptimize 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_textOptimize 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_latexConvert an expression to LaTeX. Args: expr: Expression string, e.g., "sin(x)/x". Returns: The LaTeX string.
transcribe_audioTranscribe 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_transcriptTranslate 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_videoTrim 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_jsonValidate 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…
versionReturn the installed Trafilatura version.
video_infoRead basic metadata (duration, fps, size) from a local video.
wiener_sachtextformelCompute the Wiener Sachtextformel (German) readability score. - variant: select formula variant (integer as per textstat docs) - lang: language code (defaults to de_DE)
yq_convertConvert 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_filesEvaluate 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_stringEvaluate 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_versionGet yq version string.
yt_dlp_downloadDownload 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_extractorsList all supported extractor names.
yt_dlp_versionGet 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
- Repository
- github.com/kumarganduri/legwork
- 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)