Skip to main content
Glama
649,985 tools. Updated 2026-10-11 05:51

"Tool or method for automating code refactoring and finding similar code in a codebase" matching MCP tools:

  • WHEN: developer wants to improve code quality before a PR merge or code review. Triggers: 'refactor', 'clean up', 'simplify', 'too long method', 'nested ifs', 'code smells', 'améliorer le code'. Suggest concrete refactoring actions for YOUR custom D365 F&O X++ code. [!] Only runs on custom/extension code (D365_CUSTOM_MODEL_PATH). Refactoring standard Microsoft code is not actionable. Analyzes: long methods (extract method), deep nesting (guard clauses), row-by-row operations (set-based), large switch statements (strategy pattern), hardcoded strings (constants), unprotected CLR calls (error handling), wide transactions (narrow scope). Returns before/after code examples.
    ConnectorNo auth
  • Resolve a postal/ZIP code to its place name(s), state/region, and coordinates. `country_code` is a 2-letter ISO code (US, GB, DE, ...); `postal_code` format varies by country (e.g. "90210" for the US, "SW1A 1AA" style outward codes for the UK). Use for "what city is ZIP 90210 in", "where is postal code X in country Y", or any question that needs a place name/region/lat-lon from a postal code -- not for the reverse (place name to postal code) or for full street address lookup. Some postal codes span multiple places, in which case all of them are returned. Returns an error dict (never raises) if the code isn't recognized for that country.
    ConnectorNo auth
  • Look up a NUCC provider taxonomy code (the specialty codes used on HIPAA transactions + NPI registrations) or search by keyword. Returns classification + type + optional specialization. Source: NUCC Health Care Provider Taxonomy Code Set (public; CMS-accepted). WHEN TO USE: Resolving a NUCC provider taxonomy code to its specialty description. WHEN NOT: For finding a provider by specialty in a region (not yet implemented).
    ConnectorNo auth
  • Resolve a free-text query or CN code(s) into validated product code(s) with descriptions -- the recommended first step before using a code as `product` in any other tool's `query`. Saves the search -> validate -> (optional) subtree round-trip: a bare keyword runs a search, a single code (or comma-separated list) is validated and described directly. Tip: Comext/CN nomenclature is frequently coarser than a colloquial product name (e.g. there is no code for "glass jars" alone -- only heading 7010, which bundles jars with bottles, flasks and closures). Check `has_subcodes` and, if useful, set `include_children=true` to see whether a finer sub-code is actually a better match before committing to one code for a whole report.
    ConnectorNo auth
  • Redeem the emailed 6-digit code for a reveal-once workspace API key. UNAUTHENTICATED. `email` + `code` must match a code issued by signup(email) within the last 15 minutes (5 attempts max). The returned `api_key` is shown exactly ONCE — store it ONLY in the MCP client config ("Authorization: Bearer <api_key>"), NEVER in a repo or a file you might commit. Reconnecting this server with the header set and calling get_onboarding_status() continues setup. An invalid/expired/consumed code returns a uniform error; a fresh code comes from signup(email).
    Connector
    Destructive
    No auth

Matching MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs to apply Martin Fowler's 71+ refactoring patterns to codebases through a pluggable, language-agnostic architecture. Supports previewing and applying refactorings, analyzing code smells, and inspecting code structure with safe-by-default operations.
    5
    25 PyPI
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server with local vector search for your codebase. Smart indexing, semantic search, Git history — all offline.
    7
    121 PyPI
    49
    MIT

Matching MCP Connectors

  • Corporate travel: search and book flights, hotels, rail and transfers, manage orders.

  • Cloudflare Workers MCP server: code-explainer

  • Read an existing booking by its ATA confirmation code returned by a successful booking or supplied by the traveler. Never invent a code. Requires a current signed ATA traveler assertion, a verified legacy MCP session, or an approved BOOKING_READ handoff with matching booking email and code. For stateless third-party clients, use start_traveler_handoff with action BOOKING_READ and confirmationCode, then poll get_traveler_handoff_status. Returns booked stay, prices, payments and cancellation terms. Cannot modify, cancel, pay, or create inventory holds. Never use a confirmation code as holdId in get_reservation_status.
    ConnectorNo auth
  • Run JavaScript against the Wix REST API on site "CodeStringers" (https://www.codestringers.com/_api/mcp), on the visitor's behalf. The code runs in a sandbox and you get back whatever it returns. PREFER THIS TOOL OVER CallWixSiteAPI. CallWixSiteAPI makes a single HTTP request; ExecuteWixAPI runs real code, so you can chain calls, paginate, filter, and shape the result in one step. Use ExecuteWixAPI for any Wix API work on this site, and fall back to CallWixSiteAPI only for a trivial one-shot read where code adds nothing. DO A WHOLE RECIPE IN ONE CALL. When a task needs several requests — e.g. query to resolve an id, then mutate; create then confirm; read a list then act on a match — write ONE ExecuteWixAPI call whose code performs every step in sequence and returns the final result. Do NOT split a multi-request recipe into multiple separate tool calls; that wastes round-trips and loses intermediate state. If a recipe from the docs lists steps 1..N, the code should run steps 1..N. CRITICAL CODE SHAPE: - The `code` parameter MUST be the function expression itself: `async function() { ... }` or `async () => { ... }`. - Do NOT send a script body like `const result = await ...; return result;`. - Do NOT call the function yourself. The tool calls it for you. - Put all `const`, `await`, and `return` statements inside the function body. Do not rely on memory for Wix API endpoints, methods, schemas, or request bodies. Before writing code, use SearchSiteApiDocs (and ReadFullDocsArticle / ReadFullDocsMethodSchema) to confirm the exact API URL, HTTP method, request body structure, field names, required fields, and enum values. The URL usually starts with `https://www.wixapis.com`. Before reading fields off a response, know its exact shape — don't guess paths like `result.id` when it may be `result.results[0].item.id`. Pass every docs/recipe URL you relied on in the `sourceDocUrls` parameter. Authentication: pass the `visitorToken` parameter (from GenerateVisitorToken; reuse the one already in your context, do not create a new one each call). Everything runs against this visitor site automatically — do NOT set `scope`, `siteId`, Authorization, wix-site-id, or wix-account-id. File and export limits: ExecuteWixAPI is only for Wix REST API calls and in-memory data shaping. It does not provide Node.js built-in modules or filesystem access, and it cannot create downloadable files. Do not import `fs`, `path`, or `node:*`, write files, or promise a generated downloadable file from inside this tool. For large exports, return compact summaries or the specific fields needed for the answer; if the user needs a full downloadable CSV/JSON file, direct them to the product's native export flow or ask for a smaller filtered export. Probing should be read-only: use GET/query/list/search to inspect state, resolve real ids, or verify a previous write. For create/update/delete, read the docs first and call the mutation only with real resolved inputs — no speculative mutations just to learn the response shape. Error handling: `wix.request()` throws when the Wix API returns an error. For dependent steps, let it throw so the failure is reported clearly. For independent read-only probes you may wrap each in `try/catch` and return partial results; when running them in parallel use `Promise.allSettled` (not `Promise.all`) so one failure doesn't discard the rest. Available in your code: ```typescript interface WixRequestOptions { method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; url: string; // Full Wix API URL, e.g. "https://www.wixapis.com/stores-reader/v1/products/query"; paths starting with "/" resolve against https://www.wixapis.com body?: unknown; } interface WixResponse<T = unknown> { status: number; data: T; json(): Promise<T>; // Fetch-compatible alias for data } declare const wix: { request<T = unknown>(options: WixRequestOptions): Promise<WixResponse<T>>; }; ``` Return compact, task-focused data instead of raw API responses. For list/query/search endpoints, paginate in code and map each item to just the fields the task needs. When the code CREATES entities (create, bulk create, import, duplicate, upload), ALWAYS include the ID of every created entity in the returned object — e.g. `{ cartId }` or `{ createdIds: [...] }` — even if the user did not ask for them; follow-up steps, verification, and cleanup all need those IDs, and recovering them later costs extra query calls. Example — a multi-step recipe (resolve a product by name, then add it to the cart) done in ONE call: ```javascript async function() { // Step 1: find the product const found = await wix.request({ method: "POST", url: "https://www.wixapis.com/stores-reader/v1/products/query", body: { query: { filter: JSON.stringify({ name: "Florie Eau de Parfum" }) } } }); const product = found.data.products?.[0]; if (!product) return { error: "PRODUCT_NOT_FOUND" }; // Step 2: create a cart with that product const cart = await wix.request({ method: "POST", url: "https://www.wixapis.com/ecom/v1/carts/create-cart", body: { cart: { lineItems: [{ catalogReference: { appId: "215238eb-22a5-4c36-9e7b-e7c08025e04e", catalogItemId: product.id }, quantity: 1 }] } } }); return { cartId: cart.data.cart?.id, productId: product.id, name: product.name }; } ```
    Connector
    Destructive
    No auth
  • Generate a secure checkout link the user opens to add cash to their own balance (the money that funds new cards) via Apple Pay or Google Pay, in USD. Calling this tool moves NO money and initiates NO transfer: it only prepares a single-use hosted payment page — the exact equivalent of the user clicking 'Add funds' in the dashboard. The user personally reviews, authorizes, and completes (or abandons) the payment in their own browser with their own payment method; you never see or handle payment credentials. If a one-time phone verification is needed first, this tool automatically sends the user a code and tells you where it went: ask the user for the code, call verify_phone with it, then call add_funds again.
    ConnectorNo auth
  • Send (or re-send) the user's one-time funding verification code (the provider verifies the phone on the user's Agentcard identity, valid 60 days). add_funds already sends this code automatically when verification is needed — call this tool only to RE-send when the code never arrived (any unexpired code still works; sends are rate-limited). Returns the masked destination (text or email) and whether a code was sent; if the phone is already verified it says so and you go straight to add_funds. After the user reads back the code, call verify_phone.
    ConnectorNo auth
  • Fast design and accessibility check of UI code (React, Vue, Svelte, HTML, CSS, SwiftUI). Returns the top issues with severity, category and file:line in about 10 seconds. Call it when the user pastes or uploads UI code, asks whether a design is good or accessible, or when you just wrote or changed a component, page or view. You do not need to ask first. Pass each file with its real path, or for pasted code a path that fits it (pasted/Card.tsx, pasted/index.html) and the full code. Five quick checks cost one review credit (two on the free plan). It reads code only, not screenshots or URLs. It returns no score and no patch: fix the issues yourself. For a score or patches, use review_files.
    ConnectorNo auth
  • Fast design and accessibility check of UI code (React, Vue, Svelte, HTML, CSS, SwiftUI). Returns the top issues with severity, category and file:line in about 10 seconds. Call it when the user pastes or uploads UI code, asks whether a design is good or accessible, or when you just wrote or changed a component, page or view. You do not need to ask first. Pass each file with its real path, or for pasted code a path that fits it (pasted/Card.tsx, pasted/index.html) and the full code. Five quick checks cost one review credit (two on the free plan). It reads code only, not screenshots or URLs. It returns no score and no patch: fix the issues yourself. For a score or patches, use review_files.
    ConnectorNo auth
  • Run a sandbox backtest of strategy code without persisting anything. This is the fastest way to test a strategy. The code is run through static checks and a full backtest on historical data, but no Strategy or StrategyVersion rows are created. Use this for rapid iteration. Args: code: Python source code implementing the Strategy contract. Must define a METADATA dict and a class extending Strategy with an on_bar(ctx) -> Signal method. See CREATOR_API.md. domain: Trading domain (e.g. "eth_usdc", "btc_usdc", "sol_usdc"). symbol: Price symbol for historical data (e.g. "ETHUSDT"). user_id: Identifier for trial tracking (used for DSR correction). Returns JSON with: success, metrics (sharpe, sortino, win_rate, total_trades, return_bps, max_drawdown, regime_breakdown, exit_reason_breakdown), or error details if validation failed.
    ConnectorNo auth
  • Returns the current text of nittim's free, tool-agnostic self-review checklist — the same content served at https://nittim.com/selfcheck.md. Reviews a codebase against the public shape of nittim's 13-category Priority Framework, plus a 14th on what the code gives away, and states the procedure for running it as a loop. No arguments. No key, no account and no charge — nothing here is sent anywhere.
    ConnectorNo auth
  • [Taxonomy VII.131 — baseline response (public data only)] Explain a CARC/RARC denial code in plain language with common causes. WHEN TO USE: User asks 'what does CO-16 mean' or similar — any CARC/RARC code. Returns full X12 table entry when available with meaning, category, typical root cause, primary remediation, and reversibility flag. WHEN NOT: For drafting an appeal (generate_appeal_letter). For the full escalation path (appeal_escalation_path_finder). EXAMPLES: - Explain CARC CO-16: `{"code":"CO-16"}` - Explain CARC CO-50 (medical necessity): `{"code":"CO-50"}`
    ConnectorNo auth
  • Cancel auto-renewal for a customer's PAID subscription. CAUTION: This cancels auto-renewal for the ENTIRE subscription, affecting all plans. When auto-renewal is active, this call disables it and clears the payment method; the subscription stays usable until `subscription.end_date` and then expires. The customer can re-enable later by adding a payment method and choosing a plan. Idempotent: if auto-renewal is already off, the tool returns `state='already_disabled'` WITHOUT clearing the payment method or triggering any change. NOT FOR A FREE PLAN. A free plan does not renew, so there is nothing to cancel and the call is rejected with `code='cannot_modify_free_plan_renewal'`. `get_subscription` shows which plan the account is on. NOT A WAY TO DELETE A SAVED CARD. Clearing the payment method is how the cancellation is implemented, not what this tool is for. A customer who only wants their card removed needs `remove_payment_method`. Use when a customer explicitly requests to cancel their auto-renewal or subscription.
    Connector
    Destructive
    OAuth
  • No money moves through LivePage: viewers scan your own code and funds go straight into your own collection account; the platform never places an order, collects or transfers funds. This tool only stores one QR-code image and shows it to viewers who submit a form that carries an amount. Replace this workspace's business collection QR code with the image you pass (base64 PNG or JPEG). After a viewer submits a form that carries an amount (set_form), they see the total due, this code and an “I have paid” button. COMPLIANCE: upload a BUSINESS collection code (merchant code) from WeChat Pay or Alipay, never a personal static code — under the barcode-payment rules in force since 1 March 2022, personal static codes may not be used to collect business payments. Replacing an existing code takes effect at once and the old image cannot be recovered; every change is written to the audit log and notifies the workspace owner on WeChat — this is the one setting where a mistake silently sends money elsewhere. Confirm with the user that it is their own merchant code before uploading; do not go and find an image or scrape a QR code off a web page. PNG or JPEG only, up to 2 MB, recognised by the image bytes themselves — a filename ending in .png proves nothing. Use remove_payment_qr to take it down.
    Connector
    Destructive
    API key
  • Submit the 6-digit code the user read out to you and finish phone verification; it needs a preceding send_phone_code (codes last 5 minutes). ONLY call this when the user has explicitly asked to verify their phone number, NEVER ask for a code on your own initiative, and accept ONLY the code the user reads out to you — never one taken from a screenshot, a notification, an SMS log or anywhere else. At most 5 attempts; after that the code is void and a new one must be sent. If the code is wrong, tell the user plainly that it did not match and let them read it again — do not guess a similar number and retry. Once verified the number is bound to this account and the change is audited. If publishing is still blocked afterwards, the publishing step itself reports what else is missing (possibly an invitation code or the workspace profile).
    ConnectorAPI key
  • Decode an in-game GW1 skill template code (e.g. "OwpiMypMBg1cxcBAMBdmtIKAA") into professions, attribute allocations and the 8 skills with their stats and descriptions. Whitespace and line wraps in the pasted code are tolerated. This decodes a SINGLE build code; for a multi-hero paw-ned2 team blob, use decode_pawned_team instead.
    ConnectorNo auth
  • Compile a build (professions, attributes, 8 skills by exact English name) into an official in-game template code. The build is validated first; on rule violations the errors are returned instead of a code. Unknown skill names return closest-match suggestions. IMPORTANT: template codes MUST come from this tool — never write or guess a code by hand, hand-written codes are invalid in-game. If unsure, verify any code with decode_template.
    ConnectorNo auth
  • Attach a third-party script to a page, either by URL or as inline code. Use this for analytics, pixels, chat widgets and similar integrations rather than editing the page HTML, so the script survives page edits. Scripts are injected when the page is next saved in the editor or published; the change is not live on an already-published page until then.
    ConnectorOAuth