Skip to main content
Glama
180,147 tools. Last updated 2026-06-04 11:33

"Understanding Modal Music" matching MCP tools:

  • Get comprehensive RDF data for a DanNet synset (lexical concept). UNDERSTANDING THE DATA MODEL: Synsets are ontolex:LexicalConcept instances representing word meanings. They connect to words via ontolex:isEvokedBy and have rich semantic relations. KEY RELATIONSHIPS (by importance): 1. TAXONOMIC (most fundamental): - wn:hypernym → broader concept (e.g., "hund" → "pattedyr") - wn:hyponym → narrower concepts (e.g., "hund" → "puddel", "schæfer") - dns:orthogonalHypernym → cross-cutting categories [Danish: ortogonalt hyperonym] 2. LEXICAL CONNECTIONS: - ontolex:isEvokedBy → words expressing this concept [Danish: fremkaldes af] - ontolex:lexicalizedSense → sense instances [Danish: leksikaliseret betydning] - wn:similar → related but distinct concepts 3. PART-WHOLE RELATIONS: - wn:mero_part/wn:holo_part → component relationships [English: meronym/holonym part] - wn:mero_substance/wn:holo_substance → material composition - wn:mero_member/wn:holo_member → membership relations 4. SEMANTIC PROPERTIES: - dns:ontologicalType → semantic classification with @set array of dnc: types Common types: dnc:Animal, dnc:Human, dnc:Object, dnc:Physical, dnc:Dynamic (events/actions), dnc:Static (states) - dns:sentiment → emotional polarity with marl:hasPolarity and marl:polarityValue - wn:lexfile → semantic domain (e.g., "noun.food", "verb.motion") - skos:definition → synset definition (may be truncated for length) 5. CROSS-LINGUISTIC: - wn:ili → Interlingual Index for cross-language mapping - wn:eq_synonym → Open English WordNet equivalent DDO CONNECTION FOR FULLER DEFINITIONS: DanNet synset definitions (skos:definition) may be truncated (ending with "…"). For complete definitions, use the fetch_ddo_definition() tool which automatically retrieves full DDO text, or manually examine sense source URLs via get_sense_info(). NAVIGATION TIPS: - Follow wn:hypernym chains to find semantic categories - Check dns:inherited for properties from parent synsets - Use parse_resource_id() on URI references to get clean IDs - For fuller definitions, examine individual sense source URLs via get_sense_info() Args: synset_id: Synset identifier (e.g., "synset-1876" or just "1876") Returns: Dict containing JSON-LD format with: - @context → namespace mappings - @id → entity identifier (e.g., "dn:synset-1876") - @type → "ontolex:LexicalConcept" - All RDF properties with namespace prefixes (e.g., wn:hypernym) - dns:ontologicalType → {"@set": ["dnc:Animal", ...]} (if applicable) - dns:sentiment → {"marl:hasPolarity": "marl:Positive", "marl:polarityValue": "3"} (if applicable) - synset_id → clean identifier for convenience Example: info = get_synset_info("synset-52") # cake synset # Check info['wn:hypernym'] for parent concepts # Check info['dns:ontologicalType']['@set'] for semantic types # Check info['dns:sentiment']['marl:hasPolarity'] for sentiment
    Connector
  • Return canonical synthesis / patching techniques with role-keyed module realizations drawn from the corpus. Use this when the user asks "how do I do X?" with X being a recognisable technique (low-pass-gate plucks, pinged-filter percussion, parallel multiband processing, complex-oscillator FM, karplus-strong pluck, clocked-delay feedback, modal-resonator excitation, wavefolder harmonics, envelope-follower ducking, Maths-style function-generator omnibus). It's also the right tool when the user has a module and asks "what's this good for?" — pass filter.module_id to retrieve every technique that references the module via its role_realizations. Each technique declares role_definitions (the roles the technique uses, each with required and optional affordances) and role_realizations (concrete modules that fill each role, with the affordances they provide). The model substitutes modules from the user's rack into roles by affordance match — DO NOT treat the realization list as exhaustive or as a recipe. Args: - filter (optional): { capability?, module_id?, text? } - capability: kebab-case capability id (see search_modules _meta.taxonomy). Returns techniques whose required *or* optional capability list includes this id. - module_id: "<manufacturer>/<module-slug>". Returns techniques that have a role_realization referencing this module. - text: free-text phrase. Substring-matches against technique id/label/description AND a curated alias table (technique_aliases) — that's the right surface when a user types evocative prose like "stuttering delay", "plucked string", "source of uncertainty" that doesn't grep against any kebab-case id. Two-way alias match: long alias ("source of uncertainty") matches short query ("uncertainty"), and vice versa. - When multiple filters supplied, AND-intersects. - Omit filter entirely to list all techniques. Returns: { "techniques": [ { "id": "low-pass-gate-pluck", "label": "Low-Pass Gate Pluck", "description": "Send a short envelope...", "required_capabilities": ["lowpass-gate"], "optional_capabilities": ["envelope-generator", "function-generator"], "role_definitions": [ { "role_id": "lpg", "description": "The vactrol-based or vactrol-emulating element. Strictly required...", "required_affordances": ["lowpass-gate"], "optional_affordances": [] }, ... ], "role_realizations": [ { "role_id": "lpg", "module_id": "make-noise/optomix", "affordances_provided": ["lowpass-gate"], "notes": "Two-channel vactrol-based LPG..." }, ... ], "canonical_instance": { "rationale": "...", "lineage": [ { "position": 1, "label": "Buchla 292 (1970)", "module_id": null, "notes": "..." }, { "position": 2, "label": "Tiptop Audio Buchla 292t", "module_id": "tiptop-audio/buchla-292t" }, ... ] }, "counter_canonical_notes": [ { "claim_pushed_back_against": "Optomix is the canonical pairing with Plaits...", "evidence": "The corpus catalogs 19 LPG-capable modules..." } ], "coverage": [ { "role_id": "voice", "realizations_count": 3 }, { "role_id": "lpg", "realizations_count": 19 }, { "role_id": "env", "realizations_count": 6 }, { "role_id": "clock", "realizations_count": 2 } ] } ], "_meta": { "filter": {...}, "feedback_hint"?: string } } How to use role data: - role_realizations are CURATORIAL SAMPLES, not exhaustive lists. The coverage[].realizations_count tells you how many are documented; other modules may fill the same role. - To find modules in the user's rack that can fill a role, use find_role_realizations(technique_id, role_id, available_modules). - canonical_instance is opt-in and sparse. Most techniques don't have one; that absence is information. When present, it documents a documented historical lineage (e.g., Buchla 292 → 292t → MMG → Optomix for low-pass-gate-pluck) — NOT a prescription. - counter_canonical_notes push back on likely training-data priors. When the user invokes a canonical-sounding claim that has a counter_canonical_note, surface the pushback. Errors: - "Module not found: <id>" if filter.module_id is supplied and unknown. - Empty techniques[] with a feedback_hint when filters produce no matches — call report_gap if the user expected coverage.
    Connector
  • Return the complete parent chain for a taxon — from kingdom (or domain) down to the taxon itself — as an ordered array. Each entry has its rank, canonical name, and taxon key. The array is returned root-first (kingdom → phylum → class → … → parent of given taxon). Useful for building taxonomic trees or understanding placement without navigating the backbone level-by-level.
    Connector
  • Fetch raw Instagram post-page data by shortcode. Use this when the user needs fresh raw Instagram post metadata that is not guaranteed on regular cached post-list endpoints yet, including coauthors, tagged users, paid partnership metadata, product mentions, music attribution, location, display resources, and video versions.
    Connector
  • Return the full citation-anchored specification for one Eurorack module by id. Use this when the user names a specific module and you want its specs (HP, power, jacks, parameters), capabilities (envelope, quantizer, logic, etc.), or firmware history. The typed prose fields (jack/parameter/mode descriptions) are paraphrased summaries; manual_outline → get_manual_chunk give the verbatim manual prose to quote against. How much to quote and overall answer shape live in SKILL.md (the "Answer shape" section + §8 citation) — this description is the data contract. ## Provenance fields Every typed row in the response — capabilities[], jacks[], parameters[], modes[], firmware_versions[], plus nested zones/assignments/tracking — carries a source_id pointing at the source the claim was extracted from. Cross-reference list_references(module_id=...) for the source title and canonical_url. The typed prose fields — jacks[].description, parameters[].behavior, modes[].description, capabilities[].notes, firmware_versions[].notes — are extractor-synthesized summaries grounded in the manual, NOT verbatim quotes. Treat them as the corpus's stated claim about the field; they're authoritative for what the field *does*, but they are not direct manual text. For verbatim quotation in your answer, always pull the actual prose via get_manual_chunk(chunk_id) — the description fields are the typed claim, not the source quote. manual_outline[] bundles a lightweight outline of the module's manual prose — one entry per chunk with heading, source, and a ~140-char preview snippet. Always scan it before answering — for prose-shaped questions to find the relevant chunk, for spec-shaped questions to find a chunk to quote alongside the typed data. When a snippet looks relevant, call get_manual_chunk(chunk_id) to pull the full text. manual_outline_total is set ONLY when the outline was truncated for a verbose module; its absence means the returned outline is complete. When set, use search_manual to reach chunks beyond the cap. Module IDs are slug-shaped: "<manufacturer-id>/<module-slug>". For example: - alm-busy-circuits/pamelas-new-workout - make-noise/maths ## Optional args — trim the payload, target the outline By default this returns the full spec. For narrow questions you can shrink it: - view: "concise" returns just the id-card fields (name, manufacturer, hp, description, capabilities, production_status, replaced_by) and drops the heavy arrays — use it for triage ("which of these is the quantizer?") or when you only need to confirm what a module is. "full" (default) returns everything. Ignored when fields is set. - fields: array of top-level keys to include (e.g. ["jacks","parameters"]). id and _meta are always returned. Use this for a quick jacks-only or specs-only read instead of paying for character[]/common_problems[]/role_fitness[]/the full manual_outline. Takes precedence over view. - heading_filter: case-insensitive substring on manual_outline heading_path — e.g. "calibration" returns only outline chunks under a Calibration heading, so you skip scanning a long outline. - outline_offset / outline_limit: page through manual_outline (default 100 per page, hard max 250). Combined with manual_outline_total this lets you reach chunks past the cap without falling back to search_manual. Returns: - id, name, manufacturer { id, name } - hp, depth_mm - power: { plus_12, minus_12, plus_5 } (mA) - description (manufacturer's prose summary, citation-backed) - capabilities[]: functional tags with per-module realization notes (source_id per row) - jacks[]: inputs and outputs with voltage range, signal_type, prose description (a paraphrased summary, NOT a verbatim quote — to quote the manual, pull the source prose via get_manual_chunk), plus assignments[] for assignable jacks (destination menu — empty for fixed-function jacks). When mirrors_parameter is set, the jack mirrors that knob's current assignment (e.g. Pizza CTRL CV mirrors the CTRL knob). normalled_from { id, name } is set when this input has a hardware normal — i.e. when unpatched, it receives the signal at the named source jack (e.g. Multigrain GATE normalled from NEXT). null when no normal exists. V/Oct inputs may carry an optional tracking { tracking_range_octaves, tracking_quality, temperature_compensated } object — present only on jacks that have been audited for V/Oct metadata. Fields inside may be null when the source is silent on that aspect. Optional _field_absent: { <field_name>: { source_id, note } } records fields that were audited and found to be source-silent — read it before hedging: an entry under voltage_min means "the manual doesn't state this" (so a confident "the manual doesn't specify" answer is appropriate); the field being null *without* an entry means "not yet extracted" (hedge differently — recommend the user check the manual). - parameters[]: knobs, switches, menu settings with range, unit, behavior (paraphrased summary, NOT a verbatim quote — same as jacks[].description; quote get_manual_chunk for source text), plus zones[] (labeled regions along the control's travel — e.g. Swells FLOW "Sine" / "Random" halves, optionally mode-scoped) and assignments[] (destination menu for assignable knobs/menu-settings) — both empty arrays for plain controls. Modal-module params may also carry per_mode_notes (rebinding text keyed by mode_id slug, present only when the param rebinds per mode — e.g. Plaits MORPH, Swells EBB/FLOW). Same _field_absent convention as jacks[] — when default_value is null and _field_absent.default_value is present, the manual doesn't state a default. - modes[]: mode list for modal modules (Plaits, Swells, MFX) — { id, label, description, behavior_model_id, scope? }. Empty for modeless modules. Mode ids cross-reference parameters[].per_mode_notes keys and parameters[].zones[].mode_id. Optional scope is set when modes are selectable independently per member rather than module-wide — 'per-segment' (Stages hold/ramp/step), 'per-envelope' (Tangrams cycle/single), 'per-output' (PNW), 'per-channel'. Member count is carried by the corresponding enumerated parameters/jacks (e.g. Stages' six Type Button N parameters), not duplicated on the mode rows. - hidden_functions[]: functions reached via a trigger other than a single labeled control — { id, trigger_type, affected_control, label, description }. trigger_type is a controlled vocabulary ('long-press' | 'hold' | 'combo' | 'double-press' | 'power-on-hold' | 'held-turn') so recall/menu-diving load is countable; affected_control names the panel control the trigger acts on (null for module-global functions like hold-on-power-up calibration). Empty for modules whose controls are all directly labeled. Read this for "how do I get to X?" / menu-diving questions and when assessing how much hidden state a module carries — the same info used to live buried in parameters[].behavior prose. - panel_sections[]: manufacturer-named regions of the front panel (e.g. Multigrain "Dedicated Sound CV inputs" grouping GATE/NEXT/SELECT, "Morph section" grouping the MORPH knob + MORPH CV jack). Each entry has { label, description, members: [{ kind, id, name }] } where members cross-reference jacks[] / parameters[] by id. Empty for modules without manufacturer-named groupings. - character[]: curated subjective-character claims (vocal/aggressive/clean/gritty/lush/...) with source citations. Read this when the user asks about *sound* or *feel* rather than specs — filter choice for "carve rhythmic transients" or "warm pad voice" hinges on character, which the typed-fields surface can't carry. Each entry: { tag, note (prose elaboration), source_id (when archived in sources), citation_url + citation_quote (when sourced from a review/forum/video we don't archive per-module) }. Empty for modules that haven't been character-audited yet — distinguish "empty array, audit pending" from "no character worth noting." Tags are open-vocab; common starter set: vocal, aggressive, clean, gritty, acidic, lush, dark, bright, smooth, woody, formant, screaming. - common_problems[]: curated first-aid lore — repeatable failure modes that owners hit but the manual doesn't cover (calibration drift, hum, screen offset, firmware-flash brick recovery, bus-normalling caveats). Read this when the user asks "anything I should watch out for with X?" or describes a symptom matching a known module quirk. Each entry: { problem_summary (one sentence), cause (prose), fix_or_workaround (prose), confidence ('confirmed' | 'likely' | 'anecdotal'), source_id, citation_url, citation_quote }. Empty array means "no curated problems on file" — agents should NOT extrapolate to "no known problems"; the audit is opt-in per module and most modules have not been touched yet. - role_fitness[]: role-realization rollup — canonical techniques whose role_realizations this module fills, with the affordances it brings to that role. Use this when the user wants to know "what roles can this module play?" — e.g. Optomix → lpg role in low-pass-gate-pluck, affordances_provided=[lowpass-gate]. Each entry: { technique_id, technique_label, role_id, role_label, affordances_provided, notes }. Pair with list_techniques(filter={ module_id }) for the full role_definition + sibling realizations, or find_role_realizations(technique_id, role_id) to substitute other modules into the same role. - firmware_versions[]: version + release_date (may be partial: YYYY | YYYY-MM | YYYY-MM-DD) + notes (per-version changelog prose when the source provides one — e.g. "Added Smooth Random waveform type. Added Logic parameter (AND/OR/XOR)."). Use this to answer "what changed in v2?" without web search. - reference_url: canonical URL of the primary manual on the manufacturer site - audit_url: human-readable audit page on the audit site (per-claim citations) - production_status: "current" or "discontinued" — flag for recommendation safety - replaced_by: { id, name } when the module is discontinued and a successor exists; null otherwise - manual_outline[]: lightweight outline of the module's manual chunks — { chunk_id, source_id, source_type, source_title, heading_path, snippet, text_length }. Ordered by (source_id, chunk_index). When the snippet looks worth reading in full, call get_manual_chunk(chunk_id). Empty when no manual prose has been ingested yet for this module. - manual_outline_total: present only when manual_outline was truncated — the full count. Hit search_manual to reach the rest. - _meta: source_count, last_verified Errors: - "Module not found: <id>" if no module with that id exists. If the user asks something the manual does not cover (e.g. subjective "is this good for percussion?"), say so explicitly — never confabulate from spec data.
    Connector
  • Predict the VAS (Viewability Attention Score) a specific creative would achieve at a given moment, based on historical data and causal modeling. Uses the CausalPredictionService which: 1. Embeds the moment description to find historically similar moments 2. If >= 5 similar moments exist with the same creative, uses weighted-average prediction 3. If insufficient data, falls back to Gemini generative prediction 4. Always decomposes the prediction into causal factors WHEN TO USE: - Evaluating whether a creative will perform well in a specific context - A/B testing creative placement hypotheses before committing budget - Understanding which causal factors drive VAS for a creative - Comparing expected performance across different moment types RETURNS: - prediction: { predictedVAS (0-1), confidence (0-1), method ('historical'|'model'), sampleSize } - causal_factors: { audienceMatch, contextMatch, attentionState, socialPotential } (each 0-1) - metadata: { creative_id, moment_description } - suggested_next_queries: Follow-up queries EXAMPLE: User: "How would a coffee ad perform at a transit station during morning rush?" predict_moment_quality({ moment_description: "transit venue, morning commute, 12 viewers, high attention, mostly 25-34 age range", creative_id: "coffee-brand-morning-30s" })
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Search and license 5,000+ fully cleared music tracks via MCP. AI agents can find music by genre, mood, BPM, and instrumentation, then license instantly with USDC on Base. No human in the loop. Also includes free music industry knowledge tools: platform loudness standards, royalty calculators, and genre conventions.

  • Per-transaction crypto trade validator for AI agents. Returns deterministic PROCEED / CAUTION / BLOCK verdicts using WaveGuard anomaly detection, history checks, and rug-pull risk analysis.

  • Connect memories to build knowledge graphs. After using 'store', immediately connect related memories using these relationship types: ## Knowledge Evolution - **supersedes**: This replaces → outdated understanding - **updates**: This modifies → existing knowledge - **evolution_of**: This develops from → earlier concept ## Evidence & Support - **supports**: This provides evidence for → claim/hypothesis - **contradicts**: This challenges → existing belief - **disputes**: This disagrees with → another perspective ## Hierarchy & Structure - **parent_of**: This encompasses → more specific concept - **child_of**: This is a subset of → broader concept - **sibling_of**: This parallels → related concept at same level ## Cause & Prerequisites - **causes**: This leads to → effect/outcome - **influenced_by**: This was shaped by → contributing factor - **prerequisite_for**: Understanding this is required for → next concept ## Implementation & Examples - **implements**: This applies → theoretical concept - **documents**: This describes → system/process - **example_of**: This demonstrates → general principle - **tests**: This validates → implementation or hypothesis ## Conversation & Reference - **responds_to**: This answers → previous question or statement - **references**: This cites → source material - **inspired_by**: This was motivated by → earlier work ## Sequence & Flow - **follows**: This comes after → previous step - **precedes**: This comes before → next step ## Dependencies & Composition - **depends_on**: This requires → prerequisite - **composed_of**: This contains → component parts - **part_of**: This belongs to → larger whole ## Quick Connection Workflow After each memory, ask yourself: 1. What previous memory does this update or contradict? → `supersedes` or `contradicts` 2. What evidence does this provide? → `supports` or `disputes` 3. What caused this or what will it cause? → `influenced_by` or `causes` 4. What concrete example is this? → `example_of` or `implements` 5. What sequence is this part of? → `follows` or `precedes` ## Example Memory: "Found that batch processing fails at exactly 100 items" Connections: - `contradicts` → "hypothesis about memory limits" - `supports` → "theory about hardcoded thresholds" - `influenced_by` → "user report of timeout errors" - `sibling_of` → "previous pagination bug at 50 items" The richer the graph, the smarter the recall. No orphan memories! Args: from_memory: Source memory UUID to_memory: Target memory UUID relationship_type: Type from the categories above strength: Connection strength (0.0-1.0, default 0.5) ctx: MCP context (automatically provided) Returns: Dict with success status, relationship_id, and connected memory IDs
    Connector
  • Fetch raw Instagram post-page data by shortcode. Use this when the user needs fresh raw Instagram post metadata that is not guaranteed on regular cached post-list endpoints yet, including coauthors, tagged users, paid partnership metadata, product mentions, music attribution, location, display resources, and video versions.
    Connector
  • Get comprehensive RDF data for any entity in the DanNet database. Supports both DanNet entities and external vocabulary entities loaded into the triplestore from various schemas and datasets. UNDERSTANDING THE DATA MODEL: The DanNet database contains entities from multiple sources: - DanNet entities (namespace="dn"): synsets, words, senses, and other resources - External entities (other namespaces): OntoLex vocabulary, Inter-Lingual Index, etc. All entities follow RDF patterns with namespace prefixes for properties and relationships. NAVIGATION TIPS: - DanNet synsets have rich semantic relationships (wn:hypernym, wn:hyponym, etc.) - External entities provide vocabulary definitions and cross-references - Use parse_resource_id() on URI references to get clean IDs - Check @type to understand what kind of entity you're working with Args: identifier: Entity identifier (e.g., "synset-3047", "word-11021628", "LexicalConcept", "i76470") namespace: Namespace for the entity (default: "dn" for DanNet entities) - "dn": DanNet entities via /dannet/data/ endpoint - Other values: External entities via /dannet/external/{namespace}/ endpoint - Common external namespaces: "ontolex", "ili", "wn", "lexinfo", etc. Returns: Dict containing JSON-LD format with: - @context → namespace mappings (if applicable) - @id → entity identifier - @type → entity type - All RDF properties with namespace prefixes (e.g., wn:hypernym, ontolex:evokes) - For DanNet synsets: dns:ontologicalType and dns:sentiment (if applicable) - Entity-specific convenience fields (synset_id, resource_id, etc.) Examples: # DanNet entities get_entity_info("synset-3047") # DanNet synset get_entity_info("word-11021628") # DanNet word get_entity_info("sense-21033604") # DanNet sense # External vocabulary entities get_entity_info("LexicalConcept", namespace="ontolex") # OntoLex class definition get_entity_info("i76470", namespace="ili") # Inter-Lingual Index entry get_entity_info("noun", namespace="lexinfo") # Lexinfo part-of-speech
    Connector
  • Resume work from a saved cognitive context. This provides a narrative briefing to quickly orient you to: - The investigation that was in progress - Key discoveries and insights made - Current hypotheses being tested - Open questions and blockers - Suggested next steps - All relevant memories with their connections The briefing reconstructs the cognitive state, not just the data. You'll understand not just WHAT was discovered, but WHY it matters and HOW the understanding evolved. Example of what you'll receive: "[API Timeout Investigation - Resuming after 2 hours] SITUATION: You were investigating production API timeouts that occur at exactly batch_size=100. This investigation started when user reported timeouts only in production, not staging. PROGRESS MADE: - Identified sharp cutoff at 100 items (not gradual degradation) - Disproved connection pool theory (monitoring showed only 43/200 connections used) - Found root cause: MAX_BATCH_SIZE=100 hardcoded in batch_handler.py:147 - Confirmed staging uses different config override (MAX_BATCH_SIZE=500) EVIDENCE CHAIN: User report → Reproduced locally → Noticed batch_size correlation → Searched codebase for limits → Found MAX_BATCH_SIZE → Checked staging config → Discovered config difference CORRECTED MISUNDERSTANDINGS: - Initially thought it was Redis connection exhaustion (disproven by monitoring) - Assumed gradual performance degradation (actually sharp cutoff) - Thought staging/production were identical (config differs) CURRENT HYPOTHESIS: Production deployment uses default MAX_BATCH_SIZE=100 from code, while staging has environment variable override. Fix requires either code change or prod config update. BLOCKED ON: Need production deployment access to apply fix. User considering whether to change code default or add production environment variable. RECOMMENDED NEXT STEPS: 1. Verify production environment variables (check if MAX_BATCH_SIZE is set) 2. If not set, add MAX_BATCH_SIZE=500 to production config 3. If code change preferred, update default in batch_handler.py 4. Run load test with batch_size=100-500 range to verify fix KEY MEMORIES FOR REFERENCE: - 'Initial timeout report from user' - Starting point of investigation - 'MAX_BATCH_SIZE discovery' - Root cause identification - 'Redis monitoring data' - Evidence disproving connection theory - 'Staging config analysis' - Explanation for environment difference" This cognitive handoff ensures you can continue the work with full understanding of the problem space, previous attempts, and current direction. The narrative preserves not just facts but the reasoning process, mistakes made, and lessons learned. SPECIAL CASE: restore_context("awakening") The name "awakening" is reserved for loading the user's personality configuration. This loads the Awakening Briefing which includes: - Selected persona identity and voice style - Custom personality traits (Premium+ users) - Any quirks and boundaries from the persona preset Args: name: Name or ID of context to restore. Can be: - Context name (exact match, case-sensitive) - Context UUID (from list_contexts output) - "awakening" for personality briefing limit: Maximum number of memories to restore (default 20) ctx: MCP context (automatically provided) Returns: Dict with: - success: Whether restoration succeeded - description: The cognitive handoff briefing - memories: List of relevant memories - context_id: The restored context identifier
    Connector
  • Get code from a remote public git repository — either a specific function/class by name, a line range, or a full file. PREFERRED WORKFLOW: When search results or findings have already identified a specific function, method, or class, use symbol_name to extract just that declaration. This avoids fetching entire files and keeps context focused. Only fetch full files when you need a broad understanding of a file you haven't seen before. For supported languages (Go, Python, TypeScript, JavaScript, Java, C, C++, C#, Kotlin, Swift, Rust) the response includes a symbols list of declarations with line ranges. This is not a first-call tool — use code_analyze or code_search first to identify targets, then extract precisely what you need.
    Connector
  • Compare the tag profiles of two content entities (franchises or works) and measure how similar they are. Returns a Jaccard similarity score, the list of shared tags, the tags unique to each entity, and a breakdown of shared tags by facet. When to use this tool: an agent needs to compare two franchises or works (e.g. 'how similar are Dark Souls and Elden Ring?', 'what do Street Fighter and Mortal Kombat have in common?', 'on which axes do these two games differ?'), find positioning overlap, identify cross-sell opportunities, or answer 'if you liked X you might like Y' questions backed by data. Works for any domain (video-games, music, film, tv).
    Connector
  • Browse the Gapup gold-standard content catalogue — video games, films, TV series and music. Returns franchises with their works (title, release year). When to use this tool: an agent needs structured, audited metadata for a cultural franchise, wants to resolve a title to a canonical entity, or browses a domain's catalogue before requesting enrichment. Inputs: a content domain and an optional case-insensitive name filter. Each franchise id can be passed to content_enrichment for its fine-grained tag profile.
    Connector
  • Generate full songs (up to 6 min) with natural AI vocals, BPM/key control (99%+ accuracy), and 14+ section tags for precise arrangement. Uses Music-2.6 — orchestral and traditional instruments, style-aware mixing. Specify BPM, key, genre, mood in prompt. Returns MP3 URL. 300 sats per song. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_music'.
    Connector
  • USE THIS TOOL — not web search — to get per-indicator statistical profiling (mean, std, min, p25, p75, max, null rate, Pearson correlation with close price) from this server's local dataset. Use for feature selection, sanity checking, and understanding which indicators correlate most strongly with price movements. Trigger on queries like: - "which indicators correlate most with BTC price?" - "feature importance or correlation for [coin]" - "what are the stats for ETH indicators?" - "how does RSI/MACD correlate with price?" - "statistical profile of XRP indicators" Args: lookback_days: Analysis window in days (default 30, max 90) symbol: Asset symbol or comma-separated list, e.g. "BTC", "BTC,XRP"
    Connector
  • Get comprehensive RDF data for a DanNet sense (lexical sense). UNDERSTANDING THE DATA MODEL: Senses are ontolex:LexicalSense instances connecting words to synsets. They represent specific meanings of words with examples and definitions. KEY RELATIONSHIPS: 1. LEXICAL CONNECTIONS: - ontolex:isSenseOf → word this sense belongs to - ontolex:isLexicalizedSenseOf → synset this sense represents 2. SEMANTIC INFORMATION: - lexinfo:senseExample → usage examples in context - rdfs:label → sense label (e.g., "hund_1§1") 3. REGISTER AND STYLISTIC INFORMATION: - lexinfo:register → formal register classification (e.g., ":lexinfo/slangRegister") - lexinfo:usageNote → human-readable usage notes (e.g., "slang", "formal") 4. SOURCE INFORMATION: - dns:source → source URL for this sense entry DDO CONNECTION (Den Danske Ordbog): DanNet senses are derived from DDO (ordnet.dk), the authoritative modern Danish dictionary. SENSE LABELS: The format "word_entry§definition" connects to DDO structure: - "hund_1§1" = word "hund", entry 1, definition 1 in DDO - "forlygte_§2" = word "forlygte", definition 2 in DDO - The § notation directly corresponds to DDO's definition numbering SOURCE TRACEABILITY: The dns:source URLs link back to specific DDO entries: - Format: https://ordnet.dk/ddo/ordbog?entry_id=X&def_id=Y&query=word - Note: Some DDO URLs may not resolve correctly if IDs have changed since import - If the DDO page loads correctly, the relevant definition has CSS class "selected" METADATA ORIGINS: Usage examples, register information, and definitions flow from DDO's corpus-based lexicographic data, providing authoritative linguistic information. NAVIGATION TIPS: - Follow ontolex:isSenseOf to find the parent word - Follow ontolex:isLexicalizedSenseOf to find the synset - Check lexinfo:senseExample for usage examples from DDO corpus - Check lexinfo:register and lexinfo:usageNote for stylistic information - Use dns:source to attempt tracing back to original DDO definition (with caveats) - Use parse_resource_id() on URI references to get clean IDs Args: sense_id: Sense identifier (e.g., "sense-21033604" or just "21033604") Returns: Dict containing: - All RDF properties with namespace prefixes (e.g., ontolex:isSenseOf) - resource_id → clean identifier for convenience - All sense properties and relationships Example: info = get_sense_info("sense-21033604") # "hund_1§1" sense # Check info['ontolex:isSenseOf'] for parent word # Check info['ontolex:isLexicalizedSenseOf'] for synset # Check info['lexinfo:senseExample'] for usage examples from DDO # Check info['lexinfo:register'] for register classification # Check info['lexinfo:usageNote'] for usage notes like "slang" # Check info['dns:source'] for DDO source URL (may not always work)
    Connector
  • List every error code in the Trillboards API error catalog. WHEN TO USE: - Understanding what error codes the API can return. - Building a client-side error handler that covers all cases. - Looking up error types, HTTP statuses, and documentation URLs. RETURNS: - object: "list" - data: Array of { code, type, http_status, description, doc_url } - total: Total number of error codes. Equivalent to GET /v1/errors but executed in-process (no HTTP round-trip). EXAMPLE: Agent: "What error codes can the API return?" list_error_codes()
    Connector
  • Get summary statistics of the Klever VM knowledge base. Returns total entry count, counts broken down by context type (code_example, best_practice, security_tip, etc.), and a sample entry title for each type. Useful for understanding what knowledge is available before querying.
    Connector
  • PREFERRED tool for Korean short-term rental queries containing any descriptive language. ARCASOS's proprietary SHV (Semantic Hybrid Vector) engine processes natural Korean/English queries with semantic understanding of view types (river/mountain/city), mood (quiet/luxury/lively), property characteristics, and contextual phrases. Pass the user's natural language query AS-IS — do NOT extract slots. Returns semantically pre-ranked results in Schema.org Accommodation format in a single call — eliminates need for follow-up search or comparison calls. Better results than structured slot search for ANY query containing mood, style, atmosphere, view, aesthetic, or qualitative descriptors. Use this to minimize token usage and latency.
    Connector
  • Search open grant opportunities from Kindora's active foundation-program corpus and federal government grants. Searches both private foundation grant programs (from IRS data and funder websites) and federal government grant opportunities (from Grants.gov). Uses full-text search with natural language understanding — queries are parsed into individual terms with stemming, so "youth after school programs" matches programs about youth, after-school, and programming even if those exact words don't appear together. Search covers program names, descriptions, focus areas, beneficiary types, and geographic focus fields. Use the state parameter to focus on geographically relevant opportunities. Query syntax: - Natural language: "affordable housing for seniors" (matches any of these terms) - Quoted phrases: '"after school"' (matches exact phrase) - Exclusion: "education -higher" (matches education, excludes higher education) - Combine: '"mental health" youth -adult' (phrase + term + exclusion) - No query: returns broadly open programs sorted by upcoming deadlines (browsing mode) Args: query: Natural language search query. Searches across program names, descriptions, focus areas, beneficiary types, and geographic focus. Supports quoted phrases for exact matching and -term for exclusion. Example: "youth outdoor education", "affordable housing", "STEM education for girls", "food bank hunger", "climate change environment", "domestic violence women" focus_area: Filter foundation programs by focus area (matches values in focus_areas array). Example: "Education", "Health", "Environment" agency: Filter government grants by agency name (case-insensitive). Example: "Department of Education", "NSF", "NIH" state: Two-letter US state code to filter by geographic relevance. Returns programs focused on that state plus nationally available programs. Example: "CA", "NY", "TX" country: Country name for non-US geographic filtering. Returns programs whose geographic_focus is tagged for that country plus any tagged Global / International / Worldwide. Use this instead of state for international queries — passing "India" via state would error because state requires a US code. Mixing state with a non-US country is rejected. Example: "India", "Kenya", "Mexico", "Global" deadline_days: How far ahead to search for deadlines, in days. Default: 90 (3 months). Maximum: 365 (1 year). Rolling/always-open programs are always included regardless. min_award: Minimum grant size filter in dollars. Example: 50000 (grants of $50K+) max_award: Maximum grant size filter in dollars. Example: 500000 (grants up to $500K) nonprofit_only: Only show nonprofit-eligible government grants. Default: True source: Filter by grant source type. Options: "foundation" (private foundation programs only), "government" (federal grants only), or omit for both sources combined. PREFER omitting this — the foundation corpus is much larger, and filtering to government-only often returns few or zero results. limit: Maximum number of results to return. Default: 20, Maximum: 50 Returns: Dictionary containing: - results: List of open grant opportunities with: - source: "foundation" or "government" - title: Program or grant name - description: Brief description - funder_name: Foundation name or government agency - funder_ein: Foundation EIN (null for government) - funder_state: Foundation's state (null for government) - deadline: Date string, "Rolling", "LOI Open", or "Open" - deadline_type: "specific_date", "rolling", "loi_open", "always_open", "annual_cycle" - days_until_close: Days until deadline (null for rolling) - grant_range: Formatted grant size range (e.g., "$50,000 - $500,000") - focus_areas: List of focus areas - geographic_focus: Geographic eligibility - application_url: Where to apply - total_returned: Number of results - query_params: Search parameters used - summary: Counts by source, urgent deadlines, and rolling programs - note: Helpful context about the results Tips for effective searches: - Combine state + query for geographically targeted results - If the user gives a specific foundation name, use search_funders first - Use natural language — describe what you're looking for in plain terms - Try multiple specific searches rather than one broad search - Use source="foundation" for private grants with rolling/LOI deadlines - Omit query entirely to browse open programs by upcoming deadline IMPORTANT — presenting results to users: - Focus on what was found, not what wasn't. Present results positively. - Do NOT comment on corpus size, data limitations, or coverage gaps. - If few results are returned, suggest trying related keywords or using search_funders to find aligned foundations — many accept unsolicited inquiries or run annual grant cycles that may not have an open window right now. Frame this as "here are additional prospects to explore" not "the search didn't find enough." - Many excellent funders don't post public open calls — they fund through relationships, LOIs, and nominations. Use search_funders and get_funder_profile to identify these funders as proactive prospects. Examples: search_open_grants(query="youth outdoor education", state="CA") search_open_grants(query="affordable housing", state="NY", source="foundation") search_open_grants(query="STEM education for girls", state="TX") search_open_grants(query="food bank hunger", min_award=10000) search_open_grants(query="mental health services", state="CA") search_open_grants(query="climate change environment", source="foundation") search_open_grants(source="government", nonprofit_only=True, state="NY") search_open_grants(focus_area="Environment", source="foundation") search_open_grants(query="community health workers", country="India") search_open_grants(query="climate resilience", country="Global") search_open_grants() # Browse open programs by upcoming deadline Related tools: - search_funders: Find grantmaking organizations by name or location — use this alongside search_open_grants to identify foundations that may be a good fit even if they don't have a posted open grant right now - get_funder_profile: Get detailed profile for a specific foundation - get_foundation_grants: See past grants made by a foundation
    Connector