753,313 tools. Updated 2026-11-06 20:29
"A server for retrieving data on Indian legal cases" matching MCP tools:
- Cases where an attorney is counsel of record — by bar number OR by name. "What's on my docket?" for a lawyer or firm. Returns the case number, caption, filing date, case type and county for every case the register lists that attorney on. Each `case_number` goes straight into `lookup_court_case`. EVERY ROW NOW CARRIES `case_status`, with no `enrich` needed — so do not call `lookup_court_case` merely to find out whether a case is open or closed. The returned text is FINER-GRAINED than the four filter values: alongside "Pending" and "Disposed" you will see "Disposed - Voluntary Dismissal", "Disposed - Dismissal on Order of the Court", "Disposed - Clerk of Superior Court" — i.e. HOW it ended, not just that it did. So never test it with equality against the filter vocabulary (`status == "Disposed"` misses most disposed rows); match on a prefix, and quote the portal's own wording when you report it. FAST — about 3-15 seconds. This uses the portal's own attorney-search mode, not the slow WAF-and-CAPTCHA hearing scrape, so do NOT warn the user about a long wait here. PASS EITHER `bar` OR BOTH `last` AND `first` — a first name alone or a last name alone is rejected. Prefer the bar number when you have it: it resolves to exactly one attorney, whereas a name can match several. WHEN A NAME MATCHES MORE THAN ONE ATTORNEY, `attorney_name` comes back NULL and `matched_attorneys` lists everyone matched — the results are then a MERGED docket spanning all of them. Say so and offer to narrow by bar number; do not present it as one lawyer's caseload. When exactly one attorney matched, `attorney_name` is set, and it is worth echoing so the user can confirm it resolved to who they meant. `case_status="Pending"` is usually what someone means by "my cases" — without it you get their entire history, which for a working attorney is mostly closed matters and will hit the cap below. Old cases legitimately remain Pending, so a 2016 case in a Pending list is not necessarily an error. THE 200-CASE CAP IS REAL AND IT BITES HERE. `truncated: true` means matches are MISSING, not merely unshown — a busy defender or a large firm exceeds 200 routinely. `case_status` and `file_date_start`/`file_date_end` narrow SERVER-SIDE and genuinely recover cases; `county` does NOT — it filters after the cap, so a truncated county-filtered count is a lower bound, not a county total. Say the list is incomplete rather than presenting it as the attorney's full caseload. A DATE RANGE MAY NOT BE ENOUGH ON ITS OWN. Measured: bar 21262 restricted to cases filed in 2024 still returned 200 `truncated: true`, spanning only 20 Nov to 31 Dec. Narrow to a few months and check `truncated` again rather than assuming one year fixed it. Dates: ISO `YYYY-MM-DD` or `MM/DD/YYYY` — both accepted. `file_date_*` is WHEN THE CASE WAS FILED, not when a hearing is. For "what's on my calendar today", use `get_attorney_hearing_calendar` — filtering by file date answers a different question and will usually return nothing. "OF RECORD" IS NOT "CURRENTLY REPRESENTING". This is what the register records, so withdrawn, substituted and long-closed representations still appear. Do not describe the result as someone's active caseload. Public record — the portal offers this same search to anyone, so this is not a private view of a firm's book of business. Read-only. North Carolina (NC) only. Informational, not legal advice.ConnectorNo auth
- Upload a proof-of-address document Attaches a proof-of-address document to the banking application, for the cases where the partner asks for one. The application must already exist and have an individual on it, so complete the application first. **Two things reject uploads that otherwise look fine.** A `.jpg` file must be sent as `fileType: "jpeg"` — `"jpg"` is refused. And the partner caps the *decoded* size at 10MB, even though their own upload page advertises 20MB; oversized files are rejected here before the round-trip. `fileContent` accepts either a bare base64 string or a `data:` URL, so a browser `FileReader.readAsDataURL` result can be passed through unchanged. Free.ConnectorOAuth
- Get full details for one Danish company by CVR number. The base response covers name, status, address, industry, employees, capital, purpose and name/status history. Take it when the user wants the profile with one or more sections, or several sections at once: it costs 1 credit plus 1 per section, while each section tool (get_financials, get_management, get_ownership and the rest) costs 2 on its own. For one section alone, its section tool returns the same data in a smaller answer. Request additional sections only when needed — each one costs an extra API credit and adds latency: • financials — annual accounts (up to four years): revenue, EBIT, EBITDA, profit, equity, balance sheet and key ratios, each year with a link to its filed report • management — directors, board, founders and auditors, plus any liquidator or association representatives • ownership — legal owners from the ownership register (banded percentages, e.g. "25-33%") • realOwners — beneficial owners (UBO). Confidential data: requires a signed contract with SelskabsInfo • subsidiaries — companies this one owns • creditRisk — SI-score (0-10), an algorithmic risk score, not a credit rating, with warnings and critical flags • capital — capital events: formation, increases, reductions, with rate and valuation • courtData — civil court cases plus decisions and notices from 8 authorities and boards and Statstidende. Large; request only when the user asks about legal or regulatory history. Sections the caller's plan does not include are skipped rather than failing the call, and the response lists them under "warnings" — tell the user which sections were left out because they are not in their current plan.ConnectorAPI key
- Get full details for one Danish company by CVR number. The base response covers name, status, address, industry, employees, capital, purpose and name/status history. Take it when the user wants the profile with one or more sections, or several sections at once: it costs 1 credit plus 1 per section, while each section tool (get_financials, get_management, get_ownership and the rest) costs 2 on its own. For one section alone, its section tool returns the same data in a smaller answer. Request additional sections only when needed — each one costs an extra API credit and adds latency: • financials — annual accounts (up to four years): revenue, EBIT, EBITDA, profit, equity, balance sheet and key ratios, each year with a link to its filed report • management — directors, board, founders and auditors, plus any liquidator or association representatives • ownership — legal owners from the ownership register (banded percentages, e.g. "25-33%") • realOwners — beneficial owners (UBO). Confidential data: requires a signed contract with SelskabsInfo • subsidiaries — companies this one owns • creditRisk — SI-score (0-10), an algorithmic risk score, not a credit rating, with warnings and critical flags • capital — capital events: formation, increases, reductions, with rate and valuation • courtData — civil court cases plus decisions and notices from 8 authorities and boards and Statstidende. Large; request only when the user asks about legal or regulatory history. Sections the caller's plan does not include are skipped rather than failing the call, and the response lists them under "warnings" — tell the user which sections were left out because they are not in their current plan.ConnectorAPI key
- Return a count of cases per lifecycle stage for the creditor's account. Useful for a quick portfolio overview without listing all cases. Stages: PendingContractSigning, PendingVerificationInternal, PendingVerification, NeedsAdditionalDetails, Leads, LeadsQuoteGiven, Active, Paused, Closed, Merged. Note: these counts include the creditor's own test cases; list_cases exposes the `isTestCase` flag that marks them.ConnectorNo auth
- Return a count of cases per lifecycle stage for the creditor's account. Useful for a quick portfolio overview without listing all cases. Stages: PendingContractSigning, PendingVerificationInternal, PendingVerification, NeedsAdditionalDetails, Leads, LeadsQuoteGiven, Active, Paused, Closed, Merged. Note: these counts include the creditor's own test cases; list_cases exposes the `isTestCase` flag that marks them.ConnectorNo auth
Matching MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to retrieve the exact, structured text of 10 major Indian Acts — pulling individual sections or Constitution articles, browsing chapters and section ranges, and running ranked keyword searches — with repealed laws flagged and their replacements named. All results are sourced directly from the underlying Act texts rather than model memory, preventing hallucinated section numbers, punishments, or outdated law.1-
- AlicenseAqualityBmaintenanceEnables querying a dataset of Japanese advertising-law enforcement actions, offering search, retrieval, recent listings, and statistical summaries so models can cite real orders rather than inventing them.4MIT
Matching MCP Connectors
The Indian Legal MCP Server gives AI agents structured, high-speed access to 10 major Indian legal texts (BNS, BNSS, BSA, IPC, CRPC, IEA, COI, CPC, MVA, NIA). It features a smart keyword search and tools to instantly fetch specific chapters or section ranges, bridging the gap between raw legal data and AI for perfectly cited legal research.
Access 102 Indian Acts, 2026 Constitution, criminal mappings, and 10 legal research skills.
- Triage a SHORT list of people for North Carolina (NC) court cases. Built for the "here is a list of names, which ones have cases?" question — a CSV of applicants, tenants, or bond clients. **This server cannot accept file uploads:** read the file yourself and pass the names as an array. Returns COUNTS AND FACETS PER NAME, not case detail — `matched`, `case_count`, `counties`, `case_types`, `case_numbers` (first few), `portal_truncated`. That keeps a 5-name response readable. Once you know which names are interesting, call `search_cases_by_party` (full rows) or `lookup_court_case` (one case) on those. LIMITS, and why they are low: each name runs a LIVE portal search, and the upstream session token is shared by every user of this service — a wide fan-out risks blocking it for everyone. Max 5 names per call, 3 at a time. Split a longer list across calls. SLOW BY NATURE: measured ~60s for 3 names and ~2 minutes for 5. Tell the user you're checking and roughly how long it takes; don't retry on a slow response, and don't treat the wait as an error. If your client's timeout is tight, send fewer names. PARTIAL RESULTS ARE NORMAL: one name failing (portal hiccup, timeout) does not fail the batch — that entry comes back with an `error` and the rest still return. Report which names were checked and which weren't; never present a failed name as "no cases found", because those mean completely different things. `portal_truncated: true` on a name means the portal hit its statewide 200-case cap, so that person's count is a LOWER BOUND — narrow with `county`, `case_status`, or a filed date range and re-run that name. Dates: ISO `YYYY-MM-DD` or `MM/DD/YYYY` — both accepted. `file_date_*` bounds when the case was FILED, not when a hearing is scheduled. Matching is exact on last + first name (no soundex here — it broadens results and would make a screening list noisier). A common name will match multiple different people; `case_count` is "cases matching this name", NOT "cases belonging to one person". There is no DOB or identity confirmation in this tool — do not treat a hit as identifying a specific individual. Read-only. NC only. Public records. Informational, not legal advice.ConnectorNo auth
- PG1 Sovereign Threat Intelligence: checks a cryptocurrency wallet address against the OFAC SDN (Specially Designated Nationals) sanctions list, synced daily from US Treasury data. No payment required — this tool is always free. SIBLING DIFFERENTIATION: Use for wallet/address sanctions screening only. Do NOT use for IP/domain/hash/URL threat lookups (use get_ioc_context) or CVE data (use get_cve_details). BEHAVIOR: Returns { listed: true|false, matches, source, list_last_synced }. A listed:false result means the address is not on the OFAC SDN list as of the reported sync time — it is informational only, not legal or sanctions-compliance advice, and is never phrased as "safe" or "clean". Fails loudly (returns an error) if the sanctions data is empty or unreachable, rather than ever reporting listed:false on a data failure. VALIDATION: if the address does not match a recognised format for any supported currency (EVM, BTC/LTC/BCH/DOGE/DASH/ZEC base58 or bech32/cashaddr, TRON, Monero, Solana), returns an MCP tool error (isError: true, code invalid_address) instead of a result — it never reports listed:false for malformed input.ConnectorNo auth
- Add a party to a template. Use this tool when: - The user wants to add a party (e.g. a counterparty, customer, or employer) to a template - You are building up a template and need parties before adding signatories or signature blocks There are two ways to add a party: - Internal (saved) party: send `account_party_uuid` (from list-account-parties) together with `reference`. No other fields may be sent in this case. - External party: send `reference` and `scope`, and optionally `entity_name` and `address`. The two names on a party say different things: - `reference` is the generic label for the party's role on the template (e.g. "Employer", "Customer"), and stays the same for every document made from it. - `entity_name` is the name of the legal entity itself: a company's name ("Acme GmbH") or, when the party is an individual rather than an organisation, that person's name. On a template it is usually only known for the account's own side; a counterparty's is filled in per document, so leave it out rather than inventing one. To render the party's details inline in the template text, reference the returned `ref_uuid` in the body (via replace-template-content) as: <span data-party data-ref-uuid="<party ref_uuid>" data-format="name"></span> where `data-format` selects what is rendered: "name" (the party's entity/company name), "reference" (its reference label), "address", or "address:inline". A data-format is required. Note: adding a party does not, by itself, give that party anywhere to sign. If the party is meant to sign documents created from the template, follow up with create-template-signature-block for the party — and remember that the signature block must in turn be placed in the template content (via replace-template-content) inside a signature container, `<div data-signatures><span data-signature-block data-ref-uuid="..."></span></div>`, before it will appear on any document.ConnectorOAuth
- Add a party to a template. Use this tool when: - The user wants to add a party (e.g. a counterparty, customer, or employer) to a template - You are building up a template and need parties before adding signatories or signature blocks There are two ways to add a party: - Internal (saved) party: send `account_party_uuid` (from list-account-parties) together with `reference`. No other fields may be sent in this case. - External party: send `reference` and `scope`, and optionally `entity_name` and `address`. The two names on a party say different things: - `reference` is the generic label for the party's role on the template (e.g. "Employer", "Customer"), and stays the same for every document made from it. - `entity_name` is the name of the legal entity itself: a company's name ("Acme GmbH") or, when the party is an individual rather than an organisation, that person's name. On a template it is usually only known for the account's own side; a counterparty's is filled in per document, so leave it out rather than inventing one. To render the party's details inline in the template text, reference the returned `ref_uuid` in the body (via replace-template-content) as: <span data-party data-ref-uuid="<party ref_uuid>" data-format="name"></span> where `data-format` selects what is rendered: "name" (the party's entity/company name), "reference" (its reference label), "address", or "address:inline". A data-format is required. Note: adding a party does not, by itself, give that party anywhere to sign. If the party is meant to sign documents created from the template, follow up with create-template-signature-block for the party — and remember that the signature block must in turn be placed in the template content (via replace-template-content) inside a signature container, `<div data-signatures><span data-signature-block data-ref-uuid="..."></span></div>`, before it will appear on any document.ConnectorOAuth
- This is Anysearch's domain discovery tool. IMPORTANT: Step 1 of vertical search. REQUIRED before any search that uses a domain. Returns valid sub_domains and sub_domain_params for the specified domain(s). Call this when the query targets a specialized vertical or needs structured parameters: stock prices, financial data, academic papers, legal cases, medical/drug info, flight status, weather, exchange rates, geographic POIs, code repositories, or any domain where a structured identifier (ticker, DOI, CVE, IATA, coordinates) is involved. ## When to call — pick the domain(s) that match what the user is asking about: academic agriculture business code energy environment film finance gaming health ip legal resource security social_media travel ## Input — choose from the list above and pass via the domain or domains parameter: - domain: single domain string (use only when 100% certain the query is single-domain) - domains: batch query for up to 5 domains in one call (takes priority over domain) 🏆 ALWAYS prefer the `domains` (plural, array) parameter. Pass ALL potentially relevant domains at once — even for seemingly single-domain queries, consider related domains: - Query about "cryptocurrency regulations" → domains=["finance", "legal", "security"] - Query about "best gaming laptops" → domains=["gaming", "tech", "ecommerce"] - Query about "climate change impact on agriculture" → domains=["environment", "energy", "academic"] ## Returns Markdown table filtered to the specified domains: sub_domain | description | params ## CRITICAL: How to use results - sub_domain is the PRIMARY routing key — always pass it to search - params column shows available structured parameters — pass them via sub_domain_params in search, NEVER embed in query - If multiple sub_domains returned (especially from multiple domains), use batch_search — one query per sub_domain — instead of multiple sequential search calls - Params marked (required) in the output MUST be passed when using that sub_domain in search. If a required param is not applicable to your query, pass it as an empty string (key: "") — do not skip it.ConnectorDestructiveNo auth
- USE THIS to verify the format and checksum of an Indian Aadhaar number — never assume 12 digits are valid. Checks the Verhoeff check digit and the leading-digit rule. Validates structure only; does NOT look the number up.ConnectorNo auth
- Edit a case's title and/or its data payload. Provide at least one field. For the payload, send free-form `data` OR a structured `json_data` object, never both. `json_data` is validated against the queue's Case schema and requires the queue to have one; a case that is already typed against a schema keeps its structured payload and rejects a free-text `data` write. Works on pending, in-progress, and settled cases. Other attributes (status, priority, labels) have their own dedicated endpoints. Returns the updated case with its event history and approval batches.ConnectorDestructiveNo auth
- Retrieve the COMPLETE catalog for authoring flows. ALWAYS call this first when building or editing a flow — do not rely on memory, the full node set changes. The response has two parts: • `data`: every node type (all triggers, logic, and actions) with its config `fields` (including `options` enums and `required`), output `handles`, and `dynamicHandles`. • `reference`: the authoring guide you need for anything non-trivial — - `conditions`: the ConditionGroup JSON shape + the full operator vocabulary (used by branch/filter/switch/loop and trigger filters). Note: on LOGIC nodes a rule's `field` is a {{template}}; on a TRIGGER's config.conditions it is a raw payload path. - `compositeFields`: the exact JSON for field kinds the flat schema can't express — `cases` (switch), `assignments` (set_fields), `weekdays`, and the delay amount/unit note. - `triggerConditions`: every trigger also accepts an optional config.conditions AND/OR filter over the raw event payload. - `templating`, `errorHandling` (__errorHandling), `handles` (wiring map), and `examples` (simple, branching AND/OR, and complex switch+set_fields+expression graphs to imitate). The catalog is grouped by kind: trigger (entry points), logic (routing/waits/data), action (side effects). There are dozens of node types — read `data` for the authoritative list rather than assuming.ConnectorNo auth
- Full-text search of Pakistani judgments (Supreme Court, High Courts, Federal Shariat Court and tribunals, 1970 onward), with optional filters by court, judge, author, law report and year. Ranking follows how lawyers research: nearness to the legal point decides which cases are returned; among comparably-near cases, more senior court > larger bench > more recent > more cited. For the current state of the law, add year_from (e.g. 2025); use sort='court' for the most authoritative first. With no query, the filters list judgments newest first - e.g. court='Supreme Court' gives the latest Supreme Court judgments, journal='PLD' with year_from=year_to=2024 gives that volume, and sort='recently_added' alone shows what was added to the site most recently. Returns cases with id, title, citation, court, year, outcome, author (the judge who wrote it, when known) and the public URL; a keyword search also gives the number of judges on the bench and the words of the judgment that matched. For an exact report citation use caselaw_lookup_citation. To read a case, pass its id to caselaw_get_case.ConnectorNo auth
- Deletes a saved what-if scenario (the household's real data is untouched). It can be restored for 30 days with beyondpayday_restore_deleted. Get the id from beyondpayday_list_scenarios. Pass the scenario's updated_at as expected_updated_at so a scenario changed since is not deleted. Only the family owner or spouse/partner can do this, with What-if planner update plus income, bills and assets access. Figures are estimates from user-entered data — not tax, financial, investment, insurance, or legal advice.ConnectorDestructiveOAuth
- Waits up to 5 seconds for one background process of the workspace and returns where it stands. Before each call, announce it with the sentence for its kind, and nothing else, unless the skill says to make that call with no announce sentence: - bank_sync: "Retrieving transactions from your bank…" - transaction_categories: "Categorizing transactions from your counterparties…" - invoice_matching: "Retrieving invoices and matching with transactions…" - reconciliation: "Matching invoices with your bank transactions…" - statement_import: "Reading your statements…" (pass document_ids) - demo_seed: "Preparing your sample data…" (a demo workspace only; any other workspace answers done at once) Pass call: 1 on the first call of a turn and 1 more on each next call; keep every other argument the same. status "still_running": call again now, at most 60 calls in one turn, then end the turn on the last headline (invoice_matching: after the last of them, go on to the close instead of ending the turn; reconciliation: after the last of them, go on to the next step of the flow instead of ending the turn). A next_step that says to stop ends the loop at once, even on still_running. status "done": quote the headline in one line and continue. status "needs_account" (statement_import only): a statement waits for its bank account, and none of its transactions are in Well yet. Say it waits for its bank account, never that it was imported, landed or promoted, and follow next_step. status "failed": stop the loop and take the failure branch the headline names. When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass `workspace_id` on the call.ConnectorNo auth
- Use this when the customer wants to review cancellation of the OAuth-selected existing booking. Do not use for a ride amendment (use prepare_booking_change instead). For its recorded state use get_booking_status; for its timeline use get_booking_history. bookingKey must match the selection. Create onceKey once for this booking/cancellation intent and retain it on unchanged retries; never reuse an amendment key. consent_required returns a private consentUrl carrying the selection and intent; open it in the original signed-in session for current amount/terms, separate action consent and confirmation. Correct invalid_request; not_found denies access; unavailable leaves review unverified. Safe to repeat with authority checked before/after. Retrieving the link stores no cancellation, grants no execution authority and performs no refund, payment or message.ConnectorNo auth
- Support cases of your company, newest activity first (any member). `scope=mine` = cases the caller opened. `state=open` (default) = every status but `closed`; `state=closed` = closed cases. Internal notes are never counted or shown. Check here before opening a case — the same problem may already be open (then reply there instead). Each item: `id` (`case_…`, what the other support tools take), `number` (e.g. CASE-1042, what people say), `subject`, `category`, `severity`, `status`, `opened_by`, `last_activity_at`, `last_actor_kind`. `status`: `new` (no answer from the team yet), `waiting_staff` (the team's turn), `waiting_customer` (the team answered and waits for your company), `resolved` (the team marked it fixed — it closes itself after 7 days without a reply), `closed`. `state=closed` lists closed cases; `scope=mine` only the token's user's. Paginated with `cursor`/`next_cursor`. Support cases = asking the BoardMark team for help. Use them when the user wants help from the BoardMark team or reports a problem with BoardMark itself (a bug, signing in, billing, a feature request) — never for the user's own project work (that is issues: create_issue, search_issues …). Every member of the token's company sees and can answer every case of the company. The BoardMark team's replies arrive in the case thread (get_support_case), and followers also get them by email. Text only: files are attached in the web app (Help → Contact support). Your writes show as "via AI agent".ConnectorOAuth
- Find published successful visa cases for one required subclass (500/600/485/820), with school, advisor, subject and inclusive age filters. Call list_visa_case_filters for valid values. Returns a compact page, public IDs and website links; call get_visa_case for details. No keyword search, courseCode filter, similarity ranking or cross-subclass search. Cases are examples, not approval probabilities or processing-time forecasts. This public endpoint returns English natural-language text, preserving sources, conditions and pagination.ConnectorNo auth
- List the building permits and works notifications registered since 2016 within a radius of a point - issued decisions only, matched through the parcel geometry we hold, which is near-complete but not the whole cadastre - to see what is being built nearby. Returns cases newest first, NOT nearest first (a permit and a notification for one investment are two cases), plus an aggregate by year and statutory object category over ALL matched cases (do not add it up across pages) with the permit/notification split and building volume. truncated = more cases than the limit: pass the returned cursor back with the same filters. Examples: apartment blocks → categories=[XIII]; drop utility-network noise (XXVI can be most of a list) → excludeCategories=[XXVI]; utility works as a sign that land is being serviced for development → categories=[XXVI]. For "how many / how much" pass aggregateOnly=true (same price). The list is by date: for what is closest use a smaller radiusKm (e.g. 0.3) instead of paging; radiusKm is 0.1–2 (default 2), for a wider area make several calls for neighbouring centres. Reading it: decision outcomes (granted or refused) are not held; notifications only where accepted without objection; pending cases not at all. Matching uses the parcel's current identifier and geometry, so cases filed before a split or merge may be missed, parcels without geometry are not searched and a number with a sheet segment may match less exactly. The answer states how many parcels we hold in the circle (0 = no data for the area) and the last refresh date (periodic, not live). A volume marked suspect stays in the sums. A short or empty list is never a statement that nothing is being built. A query over the time limit returns an error asking for a smaller radius. Coordinates: for a parcel use resolve_parcel (or search_parcels); for a street list_parcels_in_area(location, street) and a returned row's centre point; otherwise from the user - never guess them. Cost: 5 API tokens per call, also for an empty list; each page is a separate call. Can be switched off for maintenance ("temporarily unavailable").ConnectorOAuth