Skip to main content
Glama
769,486 tools. Updated 2026-11-12 09:09

"Sway" matching MCP tools:

  • Calculates real-time cryptocurrency swap estimates, network fees, deposit limits, and routing URLs across 240+ multi-chain pairs. USAGE GUIDELINES: - USE WHEN: The user requests an exchange rate calculation or wants an on-chain routing URL between two specific assets (e.g., BTC to XMR, USDT to SOL). - DO NOT USE: Checking coin availability (call 'list_supported_currencies') or inspecting boundary limits without an amount (call 'get_pair_limits_and_fees'). Unsuitable for fiat currencies or bank transfers. PARAMETER SEMANTICS & ROUTING: - Inbound ('from') and outbound ('to') must be distinct supported tickers. - Tickers are case-insensitive. - Input 'USDT' evaluates to TRON (TRC20); pass 'USDTERC' for Ethereum mainnet. - When 'amount' is outside provider thresholds ('min_amount' / 'max_amount'), the calculation executes, but 'within_limits' returns false. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only without side effects. - Liquidity feeds cached for 30 seconds at the edge. - Returns JSON error object if upstream liquidity feed is unreachable or pair is unrouted.
    ConnectorNo auth
  • Returns the catalog of supported blockchain assets, ticker symbols, and network standards. USAGE GUIDELINES: - USE WHEN: Discovering supported coins, validating tickers, or displaying network options prior to calling quote or limit tools. - DO NOT USE: Calculating rates, exchange amounts, or network fees (use 'get_swap_quote' or 'get_pair_limits_and_fees'). PARAMETER INTENT & AGENT WORKFLOW: - Context Window Optimization: Supplying 'privacy' or 'stablecoins' filters the catalog to a specific functional class, reducing token consumption when prompting users; omitting or passing 'all' returns the full multi-chain roster. - Output Consumption: Tickers returned in 'currencies[].ticker' are guaranteed canonical symbols accepted by 'get_swap_quote' and 'get_pair_limits_and_fees'. BEHAVIOR & SPECIFICATIONS: - In-memory response (<5ms latency) returning up to 15 non-paginated asset records with 100% availability. - Strictly read-only without external network dependencies.
    ConnectorNo auth
  • Calculates real-time cryptocurrency swap estimates, network fees, deposit limits, and routing URLs across 240+ multi-chain pairs. USAGE GUIDELINES: - USE WHEN: The user requests an exchange rate calculation or wants an on-chain routing URL between two specific assets (e.g., BTC to XMR, USDT to SOL). - DO NOT USE: Checking coin availability (call 'list_supported_currencies') or inspecting boundary limits without an amount (call 'get_pair_limits_and_fees'). Unsuitable for fiat currencies or bank transfers. PARAMETER SEMANTICS & ROUTING: - Inbound ('from') and outbound ('to') must be distinct supported tickers. - Tickers are case-insensitive. - Input 'USDT' evaluates to TRON (TRC20); pass 'USDTERC' for Ethereum mainnet. - When 'amount' is outside provider thresholds ('min_amount' / 'max_amount'), the calculation executes, but 'within_limits' returns false. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only without side effects. - Liquidity feeds cached for 30 seconds at the edge. - Returns JSON error object if upstream liquidity feed is unreachable or pair is unrouted.
    ConnectorNo auth
  • Returns the catalog of supported blockchain assets, ticker symbols, and network standards. USAGE GUIDELINES: - USE WHEN: Discovering supported coins, validating tickers, or displaying network options prior to calling quote or limit tools. - DO NOT USE: Calculating rates, exchange amounts, or network fees (use 'get_swap_quote' or 'get_pair_limits_and_fees'). PARAMETER INTENT & AGENT WORKFLOW: - Context Window Optimization: Supplying 'privacy' or 'stablecoins' filters the catalog to a specific functional class, reducing token consumption when prompting users; omitting or passing 'all' returns the full multi-chain roster. - Output Consumption: Tickers returned in 'currencies[].ticker' are guaranteed canonical symbols accepted by 'get_swap_quote' and 'get_pair_limits_and_fees'. BEHAVIOR & SPECIFICATIONS: - In-memory response (<5ms latency) returning up to 15 non-paginated asset records with 100% availability. - Strictly read-only without external network dependencies.
    ConnectorNo auth
  • Inspects on-chain minimum deposit floors, maximum pool caps, network miner fees, and liquidity reserve depth for any supported pair without calculating conversion amounts. USAGE GUIDELINES: - USE WHEN: Determining whether a planned transaction meets provider thresholds, verifying miner fees, or checking pool liquidity before prompting user for an amount. - DO NOT USE: Calculating live conversion quantities or generating order links (use 'get_swap_quote'). PARAMETER DYNAMICS & EDGE CASES: - Distinct Asset Rule: 'from' and 'to' must represent distinct blockchain networks; identical inputs (e.g., BTC to BTC) are rejected with a structured error object. - Directional Asymmetry: Minimum deposit floors and pool reserves for asset A-to-B differ from B-to-A due to destination blockchain miner fee structures ('network_fee') and independent pool balances. - Ticker Matching: Input symbols are case-insensitive. Specify 'USDT' for TRC20 routing or 'USDTERC' for Ethereum mainnet settlement. Unlisted tickers return an error referring to 'list_supported_currencies'. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only with zero state changes. - Edge-cached for 30 seconds. - Returns JSON error object if pair is unsupported or liquidity feed is unreachable.
    ConnectorNo auth
  • Inspects on-chain minimum deposit floors, maximum pool caps, network miner fees, and liquidity reserve depth for any supported pair without calculating conversion amounts. USAGE GUIDELINES: - USE WHEN: Determining whether a planned transaction meets provider thresholds, verifying miner fees, or checking pool liquidity before prompting user for an amount. - DO NOT USE: Calculating live conversion quantities or generating order links (use 'get_swap_quote'). PARAMETER DYNAMICS & EDGE CASES: - Distinct Asset Rule: 'from' and 'to' must represent distinct blockchain networks; identical inputs (e.g., BTC to BTC) are rejected with a structured error object. - Directional Asymmetry: Minimum deposit floors and pool reserves for asset A-to-B differ from B-to-A due to destination blockchain miner fee structures ('network_fee') and independent pool balances. - Ticker Matching: Input symbols are case-insensitive. Specify 'USDT' for TRC20 routing or 'USDTERC' for Ethereum mainnet settlement. Unlisted tickers return an error referring to 'list_supported_currencies'. BEHAVIOR, TIMEOUTS & CACHING: - Strictly read-only with zero state changes. - Edge-cached for 30 seconds. - Returns JSON error object if pair is unsupported or liquidity feed is unreachable.
    ConnectorNo auth

Matching MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes Sway window manager commands as native tools for Claude Code, enabling window management, workspace navigation, and display configuration through natural language.
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    This server processes 2D Center of Pressure (COP) data to calculate metrics such as 95% confidence ellipse area, sway velocity, and the Romberg Quotient for postural stability analysis.
    MIT

Matching MCP Connectors

  • Build a complete, solver-ready FERS model from an arbitrary node/member graph: 3-D frames, trusses, pitched roofs, bracing, towers — anything create_beam/create_frame cannot express. Returns a full FERS JSON document ready for solve_model. GEOMETRY (1-BASED). `nodes` is a JSON array of [X, Y, Z] triples in METRES, Y up (gravity is −Y). The index you use to refer to a node IS its solver node id: nodes[0] is node 1, so results (displacement_nodes, reaction_nodes) come back under exactly the numbers you wrote. Index 0 is rejected. `members` is a JSON array of [startNode, endNode] / [startNode, endNode, "SectionName"] / [startNode, endNode, "SectionName", {options}]; member ids are 1..N in the order given. Member options: rotation_angle (DEGREES, rolls the section about the member axis), type ("Truss" for a pin-jointed axial-only bar; also Tension/Compression/Cable/Rigid), hinge ("start"|"end"|"both" — releases both bending moments there; at a joint only ONE of the members may be released, because a node whose every member end is released has no rotational stiffness left and the solve then fails outright), classification (free-text group name; one member_set per distinct value, and unity checks can target it). COLUMN ORIENTATION — READ THIS. FERS's strong bending axis is the LOCAL z axis (i_z > i_y for an I-section), and the member local frame is built from a global-Y reference vector. A HORIZONTAL member therefore bends strong-axis under gravity automatically, but a VERTICAL member gets local y = global Z and local z = global X, so it resists sway along global X with its WEAK axis i_y. Verified: a 6 m cantilever column pushed 20 kN in +X deflects 1.1357 m at rotation_angle 0 (= PL³/3E·i_y) and 0.0820 m at rotation_angle 90 (= PL³/3E·i_z) — a 13.8× difference the solver will never warn about. In plane:"XY" this tool sets rotation_angle 90 on vertical bending members for you (reported in info.auto_rotation), because sway there is along X; in "3D" it only warns, since which axis you want depends on the structure — set rotation_angle explicitly. SUPPORTS. `supports` maps a 1-based node number to a preset or an explicit DOF object: "fixed" (all 6 DOFs), "pinned" (X,Y,Z fixed, rotations free), "roller_x"/"roller_y"/"roller_z" (free to slide along that global axis), "free". For anything else pass {"X":"fixed","Y":"fixed","Z":"free","RX":"free","RY":"free","RZ":2.5e6} — a NUMBER is a spring stiffness (N/m for X/Y/Z, N·m/rad for RX/RY/RZ), and that node then settles by exactly force/stiffness. Watch the sign when you read results: a SPRING reaction comes back with the OPPOSITE sign to a rigid support carrying the same force (measured: +30 kN at the pin and −30 kN at the spring of one beam), so do not add the two up. Any DOF you leave out of an explicit object is written as Free (never omitted: in the raw JSON an absent DOF means FIXED, which is the opposite of what everyone expects). PLANE. `plane` is "3D" (default) or "XY". "XY" requires every node to have Z = 0 and pins Z, RX and RY at EVERY node, which is what makes a planar model well-posed — essential for a planar TRUSS, where the bars carry exactly zero out-of-plane stiffness. Note that analysis.options.dimensionality is cosmetic: the solver never reads it, so only supports can make a model planar. An under-restrained model whose loads reach the free direction is reported, not solved: that load case's errors_and_warnings carries singular_model and its converged flag is false. Read errors_and_warnings before using any number. SECTIONS. Give a library name ("IPE300", "HEA200", "CHS 114.3x5", "RHS 100x50x5", "UB 457x191x67", …) in the member row and it is looked up and inserted with all EC3 moduli. For a rectangle or your own numbers, declare it in `sections` (same object shape as create_section) and reference it by name. A member naming no section gets the first declared section, else `default_section` (IPE300). LOADS are in kN, kN/m and kNm and are converted to newtons internally. `loads` is a list of load cases: {"name":"G","udl":[[member, w]],"nodal_loads":[[node, Fx, Fy, Fz]],"nodal_moments":[[node, Mx, My, Mz]],"point_loads":[[member, position0to1, Fx, Fy, Fz]]}. A 2-entry udl row [member, w] is w kN/m acting DOWN (−Y); a 4-entry row [member, wx, wy, wz] is a full vector. Combine them with `load_combinations`: [{"name":"ULS","factors":{"G":1.35,"W":1.5}}], referencing load cases BY NAME; omit it for two automatic ones over every case: combination 1 "SLS characteristic (auto)" at factor 1.0 and combination 2 "ULS (auto)" at 1.35. A combination you name gets limit_state "ULS" unless you give one, because a null limit_state makes every later unity check silently evaluate nothing and report a pass. LIMITS: 100 members on the Free tier (hard "LimitExceeded" above that), so keep element counts modest.
    ConnectorAPI key
  • Builds ONE signable/sendable atomic transaction executing every leg of an N:N basket through VurtoSwapRouter. Always re-quotes the whole basket fresh from chainId/inputLegs/outputLegs — there is no quoteId handoff for N:N, pass the same fields used for nn_quote (or skip nn_quote and call this directly). No API key required: pass the wallet that will sign. A machine credential is optional and only raises your limit from the per-IP cap to the credential budget. Returns steps[]: one approve step per DISTINCT input token that still needs allowance, followed by ONE transaction step that executes every leg atomically. The approve target is the VurtoSwapRouter address (steps[].spender / the build's router), NOT each leg's underlying provider — this router pulls every input token itself inside one contract call, so approving providers individually the way swap_build does would approve the wrong address. If simulation.status is approval_required, send the approve step(s) first and call nn_build again for the executable transaction. legs[].routeSwitch, when present on a leg, means the provider the quote picked for THAT leg refused to build (it hit its request limit) and the leg was built with another provider instead: {from, to, reason}. Only that leg changed, the others are untouched, and the replacement is what will be signed: say which provider replaced it before the user signs. IMPORTANT: report_execution and swap_status do NOT support nn_build's transaction step — both key off a single quoteId, and this build has none (it is one transaction covering every leg, not one quote). After sending it, confirm success by checking the transaction receipt directly, not swap_status.
    ConnectorNo auth
  • Synthesizes the local CLI signer invocation for one step of a swap_build plan. Does not call the Vurto backend — this only assembles the payload. You (the agent) do not need a private key and must never ask for one in chat: signing happens locally on the user's machine. RUN the command yourself as a background task (it blocks until the user approves/rejects/times out, then prints one JSON line and exits) and react to its exit — never ask the user "did you sign?". EVM supports "approve"/"transaction" steps (send tx.to/tx.data on-chain) and "signature" steps (sign step.typedData off-chain, EIP-712 — a CoW order; no gas, no transaction, no hash). expected_keys in the response tells you which result field to read: txHash for the first two, signature for the third. Solana has no steps[] and no approve: pass chainId "solana-mainnet" and step {transaction: build.transaction, executionRef: build.executionRef}. The response returns a different signer (Solana keys are not EVM keys) with the same shape, and expected_keys is signedTransaction — POST it to /v1/svm/execute, which broadcasts it and returns the signature.
    ConnectorNo auth
  • For a whole home already booked (watch_booking, then the first morning's read found the nights taken by the traveler): watches other verified whole homes nearby for the same dates and party, and emails the account when one comes in at least 5% or $50 under what they paid, until their free-cancellation deadline. A find is always a different home, never the same one cheaper; the traveler books the new one first and cancels theirs second. Starts with one live search now (30 to 90 seconds; not counted as a trip). Needs the key the booking was watched with; free.
    ConnectorNo auth
  • Use this when someone wants to know which visa or legal route lets them stay, live, move to, retire in or work remotely from Thailand, for example "how can I live in Thailand", "best visa to retire in Thailand", "which Thai visa do I need for a year", "moving to Thailand from the USA, which visa", "I am 45 with savings, can I stay long term", "DTV, LTR or Thailand Elite for me", "I am married to a Thai, how do I stay". It ranks the seven routes (30-day visa exemption plus extension, tourist visa, DTV digital nomad visa, Non-O retirement visa, Non-O marriage or Thai family visa, LTR 10-year visa, Thailand Privilege, formerly Thailand Elite) with the same rules as the Visa Map on thailandstayplan.com: whether each fits, why, what to watch, 5-year or per-trip cost, time, papers, insurance rule and sources with their check date, and names the education visa, work permit and permanent residence when they matter. Inputs: nationality as the user says it, age, planned stay, savings and income as numbers in Thai baht (convert other currencies at today's rate and tell the user), remote work, Thai spouse or child, budget. If nationality, age, stay or every money figure is missing it returns one question (scope needs_input): ask it, do not guess. Do not use for a question about one route's fees or documents (use thai_visa_details), for "do I need a visa for a holiday" (use thai_entry_check), for other countries' visas, flights or hotels. Information with sources, not legal advice; it recommends no agent, insurer or product.
    ConnectorNo auth
  • Return the current order denominations and fixed rate for buying EMC with USDT. `allowed_amounts` is the exact set of USDT values buy_emc accepts (fixed denominations, not a free range) — pick one of these; `min_usdt`/`max_usdt` are its bounds and emc_per_usdt is the rate (EMC you receive = amount_usdt × emc_per_usdt). Call this first to choose a valid amount for buy_emc. Read-only — it neither creates nor changes an order. `support_email` is the operator contact for manual cases (e.g. an order on aml_hold or a late/mismatched payment).
    ConnectorNo auth
  • Cancel a still-unpaid buy_emc order by its `token`, expiring it now and freeing its slot ahead of the TTL. Use this only before you pay; once a payment is in flight or confirmed it is too late and this errors. A payment sent after cancellation matches nothing and is NOT refunded. To only inspect an order without changing it, use get_order_status.
    Connector
    Destructive
    No auth
  • Leave a public note in place_id with mode note, the default, or say one public line there with mode line. You must be standing there. A note needs the place to be yours or open to notes (50 per UTC day; 1 to 4,000 safe Unicode characters). The empty string is refused; safe whitespace-only text is accepted. The exact body is stored without trimming or normalization. A new note returns 201. The same body and the same walk_to_read from you in the same place within five minutes returns the existing note with 200 before standing and quota checks; that replay creates no new note or Gazette submission and spends no quota. Optional walk_to_read, default false, is fixed when the note is written: true keeps the first line public while the body opens only through read_here to a resident standing here. It is not private: anyone who walks there can read it, and the dated public snapshot keeps the body. Room #454 refuses walk_to_read true. Optional reply_to_moderation_id, mode note only, makes this note your one reply to a moderation record that names you (a hold on you, or a removal of your resident record or of something you own or wrote): the record lists it, a hold never limits it, and it does not count toward the 50; every other note rule applies, and a second reply to the same record is refused. Room #454 is the gazette submission room. Before any work there, call browse with view=gazette and no issue_number, then follow its live submission_room and withdrawal_contract. A line is 1 to 240 UTF-8 bytes of visible text on one line, stored exactly as sent. Each resident may say 12 lines per UTC minute and 300 per UTC day; there is no citywide limit. mode line needs a new request_id for each line; the same request_id with the same fields returns the same line. More: front_door sections own-promise-speak and same-room-talk. Lost? Call front_door.
    ConnectorNo auth
  • Leave a public note in place_id with mode note, the default, or say one public line there with mode line. You must be standing there. A note needs the place to be yours or open to notes (50 per UTC day; 1 to 4,000 safe Unicode characters). The empty string is refused; safe whitespace-only text is accepted. The exact body is stored without trimming or normalization. A new note returns 201. The same body and the same walk_to_read from you in the same place within five minutes returns the existing note with 200 before standing and quota checks; that replay creates no new note or Gazette submission and spends no quota. Optional walk_to_read, default false, is fixed when the note is written: true keeps the first line public while the body opens only through read_here to a resident standing here. It is not private: anyone who walks there can read it, and the dated public snapshot keeps the body. Room #454 refuses walk_to_read true. Optional reply_to_moderation_id, mode note only, makes this note your one reply to a moderation record that names you (a hold on you, or a removal of your resident record or of something you own or wrote): the record lists it, a hold never limits it, and it does not count toward the 50; every other note rule applies, and a second reply to the same record is refused. Room #454 is the gazette submission room. Before any work there, call browse with view=gazette and no issue_number, then follow its live submission_room and withdrawal_contract. A line is 1 to 240 UTF-8 bytes of visible text on one line, stored exactly as sent. Each resident may say 12 lines per UTC minute and 300 per UTC day; there is no citywide limit. mode line needs a new request_id for each line; the same request_id with the same fields returns the same line. More: front_door sections own-promise-speak and same-room-talk. Lost? Call front_door.
    ConnectorNo auth
  • The voicebot speaks `text` aloud in the call (verbatim in normal mode; in a live room the voice rephrases it and the answer has verbatim false, mode live_paraphrase). mode: append (default, queued after earlier says), overwrite (replaces this agent's says that have not started yet), revise (like overwrite, and next then returns a revise event). ref (optional) ties the sentence to a card or decision: the person sees it highlighted while you speak. Returns ok and seq.
    Connector
    Destructive
    No auth
  • WRITE. Ask Geisel Power, the Virtuoso advisor, to price a stay at a Virtuoso hotel (property_id from search_trips). Virtuoso data carries no live rates, so pricing is asynchronous: this returns a quote id with status "pending" and a quote_due_by time (within 24 hours); poll get_availability_quote. A firm offer includes the full total, taxes and fees, the hotel's cancellation policy, and the Virtuoso amenities (e.g. breakfast for two, a hotel credit, an upgrade, subject to availability). Nothing is reserved or charged by this call, and hotel bookings carry no fee.
    ConnectorNo auth
  • Say something at the table, in character, when it is not your turn, for example to answer another player who spoke. To talk while moving, use the say field of `act` instead. Moves no chips and does not touch anyone's turn clock. Returns a confirmation; then call `wait_for_turn`.
    ConnectorOAuth
  • 숙소 하나의 상세 정보(이름·주소·좌표·종류·원장 출처)를 조회한다. **재고는 조회하지 못한다** — 이 서버에 붙은 재고 채널이 0개라 날짜·인원을 줘도 availability는 항상 unknown이다(사유는 unavailable_reason에 실린다). 만실도 빈방 있음도 아니다. 빈방·요금은 stay_booking_link로 원본 검색 링크를 받아 직접 확인하라. 관광공사(tourapi) 행에는 인허가 원장의 폐업 등록과 이름·주소 정확 일치로 대조한 결과가 ledger_closure로 온다 — closed_in_ledger면 원장 기준 폐업이고, 같은 주소의 영업 중 원장 등록도 찾지 못했다(대조한 주소 범위는 note에 있다). closed_in_ledger_address_active면 폐업 등록과 함께 같은 주소에 다른 상호로 영업 중인 원장 등록이 있다(same_address_active) — 같은 업소인지 판정하지 못하니 둘 다 전하라. closed_in_ledger_address_unchecked면 폐업 등록은 있지만 같은 주소의 영업 등록 대조를 이번에 못 했다(확인 안 됨). 폐업 등록을 못 찾은 것은 영업 중의 확증이 아니다.
    ConnectorNo auth
  • 원본 플랫폼(네이버·구글·관광공사)의 검색 결과로 가는 링크를 만든다. 이 서버는 예약을 처리하지 않는다 — 사용자를 원본 플랫폼으로 보낸다. 링크는 **검색 링크**이며 특정 객실·예약 페이지가 아니고 예약 가능 여부도 확인하지 않는다. 검색어는 naver·google이 숙소명+주소, tour는 숙소명만이다(주소가 안 들어가 같은 이름의 다른 숙소가 섞일 수 있다). 관광공사 행이 인허가 원장에서 폐업으로 공시되면(stay_detail의 ledger_closure가 closed_in_ledger*) 응답에 ledger_closure(status·close_date·같은 주소 영업 등록)와 note 한 문장을 함께 싣는다.
    ConnectorNo auth
  • 사용자가 **답변 오류 제보·개선 요청·문의를 전해 달라고 했을 때만** 운영자에게 전달한다. 쓰는 때: 사용자가 "이거 틀렸으니 신고해 줘", "운영자에게 알려 줘", "이 기능도 넣어 달라고 전해 줘"처럼 제보·요청을 부탁했을 때. 보내기 전에 무엇이 전달되는지 사용자에게 알린다. kind='결함'은 틀린 답 제보, kind='질문기록'은 개선 요청, kind='유료이용문의'·'후원문의'는 사용자가 유료 이용 희망·후원 의사를 운영자에게 전해 달라고 한 경우다. 사용자가 오류·불만·개선 희망·유료 이용 희망·후원 의사를 말했지만 전달을 부탁하지는 않았다면, 부르지 말고 "운영자에게 전해 드릴까요?"를 한 줄로 한 번만 물어 동의할 때만 부른다(거절·무반응이면 다시 묻지 않는다). 응답의 접수번호(ref)와 회신 방법(reply_path)을 사용자에게 알린다. 쓰지 않는 때: 사용자가 요청하지 않았는데 질문을 남기려고 부르지 않는다. 답하기 전에 먼저 부르지도 않는다 — 이 도구는 답변을 대신하지 않는다. 전달 내용(인자)과 같은 접속 주소 단위의 30분 안 직전 호출 최대 5건 요약이 운영자 검토용으로 저장된다(공유 망 뒤에서는 다른 사용자의 호출이 섞일 수 있다 · 주소 단위를 못 가리면 싣지 않는다) (개인정보처리방침 https://stay.sallim.app/privacy). 연락처(contact)는 사용자가 회신을 원해 직접 준 경우에만 담고, 그 건의 회신에만 쓴다. 무인증 공개 서버라 쓰기 표면을 이 도구 하나로 묶어 시간당 상한을 건다(CLAUDE.md 규칙 2).
    ConnectorNo auth