{"apiVersion":"v1","directorySlug":"indexerlabs-mcp-c256ecc179","title":"IndexerLabs","description":"The #1 AI tool for professional book indexing. Generate high-precision scripture and subject indices in minutes.","pageUrl":"https://www.mcpbundles.com/skills/indexerlabs-mcp-c256ecc179","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.indexerlabs.com/mcp","hostedMcpUrl":null,"toolCount":62,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.indexerlabs/indexerlabs-mcp-c256ecc179","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"indexerlabs.capabilities","description":"Use this when the needed IndexerLabs operation is missing from the client's focused tool list or its current schema is uncertain. Search the live server catalog, then call invoke_read or invoke_write with the returned exact tool name and arguments. This stable discovery tool is designed to survive future server-side tool additions.","inputSchema":{"type":"object","properties":{"q":{"type":"string","default":"","maxLength":300},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"access":{"enum":["all","read","write"],"type":"string","default":"all"},"offset":{"type":"integer","default":0,"minimum":0},"include_schema":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Discover current IndexerLabs tools","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.capabilities","displayName":"Discover current IndexerLabs tools"},{"name":"indexerlabs.invoke_read","description":"Use this only as the stable fallback for a read-only tool discovered through indexerlabs.capabilities when that focused tool is absent from the client's snapshot. The server rechecks the target's current read-only annotation, authorization scopes, and arguments before running it.","inputSchema":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","maxLength":128,"minLength":1},"arguments":{"type":"object","additionalProperties":true}},"additionalProperties":false},"title":"Invoke current IndexerLabs read tool","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.invoke_read","displayName":"Invoke current IndexerLabs read tool"},{"name":"indexerlabs.invoke_write","description":"Use this only when the user explicitly asks for a state change and the focused write tool discovered through indexerlabs.capabilities is absent from the client's snapshot. Read the target state first. The server rechecks the target's current write annotation, authorization scopes, session and cost gates, and arguments.","inputSchema":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","maxLength":128,"minLength":1},"arguments":{"type":"object","additionalProperties":true}},"additionalProperties":false},"title":"Invoke current IndexerLabs write tool","logicalName":"indexerlabs.invoke_write","displayName":"Invoke current IndexerLabs write tool","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.account.me","description":"Read opaque IndexerLabs authorization status and granted MCP scopes. The authorizing user's email and delegated tokens are never returned.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Read MCP identity","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.account.me","displayName":"Read MCP identity"},{"name":"indexerlabs.account.pricing","description":"Read current server-configured book-index tier names and prices. This does not create a checkout or purchase.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Read current indexing prices","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.account.pricing","displayName":"Read current indexing prices"},{"name":"indexerlabs.source.read_pages","description":"Extract text from up to 12 selected PDF pages after checking the signed-in user's access to the job.","inputSchema":{"type":"object","required":["job_id","pages"],"properties":{"pages":{"type":"array","items":{"type":"integer","minimum":1},"maxItems":12,"minItems":1},"job_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Read source PDF pages","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.source.read_pages","displayName":"Read source PDF pages"},{"name":"indexerlabs.source.search","description":"Search text across an accessible job's source PDF and return bounded page snippets.","inputSchema":{"type":"object","required":["job_id","query"],"properties":{"query":{"type":"string","maxLength":300,"minLength":1},"job_id":{"type":"string","format":"uuid"},"end_page":{"type":"integer","minimum":1},"start_page":{"type":"integer","default":1,"minimum":1},"max_results":{"type":"integer","default":20,"maximum":50,"minimum":1}},"additionalProperties":false},"title":"Search source PDF text","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.source.search","displayName":"Search source PDF text"},{"name":"indexerlabs.editor.term_inventory","description":"Read the canonical classification taxonomy, full-index category counts, and a paginated flat list of entries and subentries. Common aliases are accepted: names/authors map to the broad person class, and titles/books map to the broad work class; the pipeline does not classify those as narrower subtypes. When the user asks for all matches, repeat with offset=next_offset until next_offset is null. This tool never launches classification; indexerlabs.compute.classify_entries is separately cost-beari","inputSchema":{"type":"object","required":["job_id"],"properties":{"sort":{"enum":["index_order","label","category"],"type":"string","default":"index_order"},"limit":{"type":"integer","default":100,"maximum":250,"minimum":1},"query":{"type":"string","maxLength":300},"scope":{"enum":["all","top_level","subentries"],"type":"string","default":"all"},"job_id":{"type":"string","format":"uuid"},"offset":{"type":"integer","default":0,"minimum":0},"variant":{"enum":["requested","top_level_only"],"type":"string","default":"requested"},"categories":{"type":"array","items":{"enum":["all","unclassified","person","work","concept","place","event","artifact","word","institution","movement","other","people","name","names","author","authors","artist","artists","works","title","titles","book","books","publication","publications","places","locations","events","concepts","artifacts","words","institutions","organizations","movements"],"type":"string"},"maxItems":11,"uniqueItems":true},"include_locators":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Browse classified index terms","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.term_inventory","displayName":"Browse classified index terms"},{"name":"indexerlabs.editor.snapshot_meta","description":"Read only the current editable-index hash and entry counts. Use this compact tool to obtain expected_hash after locating targets with term_inventory or entry; use entries_snapshot only when the complete tree is needed.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string","format":"uuid"},"variant":{"enum":["requested","top_level_only"],"type":"string","default":"requested"}},"additionalProperties":false},"title":"Read compact index revision metadata","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.snapshot_meta","displayName":"Read compact index revision metadata"},{"name":"indexerlabs.session.start","description":"Open one auditable editing session for a job. Reuse it for the task, verification, and any immediate undo; close it only when that window is complete.","inputSchema":{"type":"object","required":["job_id"],"properties":{"label":{"type":"string","default":"MCP editing session","maxLength":200},"job_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Start MCP editing session","logicalName":"indexerlabs.session.start","displayName":"Start MCP editing session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.session.list","description":"List this signed-in user's own active or closed MCP editing sessions.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":50,"maximum":200,"minimum":1},"status":{"enum":["","active","closed"],"type":"string","default":""}},"additionalProperties":false},"title":"List MCP editing sessions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.session.list","displayName":"List MCP editing sessions"},{"name":"indexerlabs.session.close","description":"Close an MCP editing session only after verifying the result and completing any immediate undo. Closed sessions reject every subsequent write, paid-agent call, and MCP snapshot undo.","inputSchema":{"type":"object","required":["mcp_session_id"],"properties":{"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Close MCP editing session","logicalName":"indexerlabs.session.close","displayName":"Close MCP editing session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.session.actions","description":"Read the technical MCP call audit, optionally filtered to a session or job. Use editor.action_logs instead when the user asks what index edits or undo/redo actions occurred.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":100,"maximum":500,"minimum":1},"job_id":{"type":"string","format":"uuid"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Read MCP action audit","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.session.actions","displayName":"Read MCP action audit"},{"name":"indexerlabs.editor.apply_operations","description":"Preferred fast path for exact edits: atomically batch up to 100 field updates or single-node inserts against the hash from snapshot_meta or entries_snapshot. Send only intended public fields. The result includes an undo_snapshot_id and a ready-to-call undo action.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","expected_hash","operations"],"properties":{"job_id":{"type":"string","format":"uuid"},"variant":{"enum":["requested","top_level_only"],"type":"string","default":"requested"},"operations":{"type":"array","items":{"oneOf":[{"type":"object","anyOf":[{"required":["set"]},{"required":["unset"]}],"required":["type","entry_id"],"properties":{"set":{"type":"object","maxProperties":50,"minProperties":1,"propertyNames":{"type":"string","pattern":"^(?!_)(?!id$)(?!subentries$).+","minLength":1},"additionalProperties":true},"type":{"type":"string","const":"update_entry_fields"},"unset":{"type":"array","items":{"type":"string","pattern":"^(?!_)(?!id$)(?!subentries$).+","minLength":1},"maxItems":50,"minItems":1,"uniqueItems":true},"entry_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["type","entry"],"properties":{"type":{"type":"string","const":"add_entry"},"entry":{"type":"object","minProperties":1,"propertyNames":{"type":"string","pattern":"^(?!_).+","minLength":1},"additionalProperties":true},"parent_entry_id":{"type":"string","minLength":1}},"additionalProperties":false}]},"maxItems":100,"minItems":1},"expected_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Apply exact index edits","logicalName":"indexerlabs.editor.apply_operations","displayName":"Apply exact index edits","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.delete_entries","description":"Atomically delete up to 100 entries or subentries by stable ID against the hash from editor.snapshot_meta or editor.entries_snapshot. Deleting a parent also deletes its remaining subtree. The response returns one undo snapshot for the whole batch.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","expected_hash","entry_ids"],"properties":{"job_id":{"type":"string","format":"uuid"},"variant":{"enum":["requested","top_level_only"],"type":"string","default":"requested"},"entry_ids":{"type":"array","items":{"type":"string","minLength":1},"maxItems":100,"minItems":1,"uniqueItems":true},"expected_hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Delete multiple index entries","logicalName":"indexerlabs.editor.delete_entries","displayName":"Delete multiple index entries","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.undo","description":"Fastest undo for a write in the current active session. Pass its returned undo_snapshot_id; the restore runs only if the index still matches the exact post-change hash, so it cannot overwrite later work. For older edits, use editor.action_logs then editor.undo_history_action.","inputSchema":{"type":"object","anyOf":[{"required":["undo_snapshot_id"]},{"required":["snapshot_id"]}],"required":["mcp_session_id"],"properties":{"snapshot_id":{"type":"string","format":"uuid"},"mcp_session_id":{"type":"string","format":"uuid"},"undo_snapshot_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Undo MCP index change","logicalName":"indexerlabs.editor.undo","displayName":"Undo MCP index change","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.undo_many","description":"Atomically undo up to 100 consecutive writes from the current editing session. Pass their returned undo snapshot IDs in any order; the server builds and verifies the hash chain, then restores the oldest before-state in one conflict-safe replacement.","inputSchema":{"type":"object","required":["mcp_session_id","undo_snapshot_ids"],"properties":{"mcp_session_id":{"type":"string","format":"uuid"},"undo_snapshot_ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"minItems":1,"uniqueItems":true}},"additionalProperties":false},"title":"Undo multiple MCP index changes","logicalName":"indexerlabs.editor.undo_many","displayName":"Undo multiple MCP index changes","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.account.profile","description":"Read the signed-in IndexerLabs account profile, credit balance, and available indexing runs.","inputSchema":{"type":"object","properties":{"view_as_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":"Read account balance and entitlements","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.account.profile","displayName":"Read account balance and entitlements"},{"name":"indexerlabs.account.transactions","description":"Read the signed-in account's credit and indexing transaction history. Owner-wide access remains subject to the existing API permission check.","inputSchema":{"type":"object","properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}]},"scope":{"type":"string","default":"user"},"view_as_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":"List account transactions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.account.transactions","displayName":"List account transactions"},{"name":"indexerlabs.jobs.list_projects","description":"List the signed-in user's IndexerLabs projects and projects shared with that user.","inputSchema":{"type":"object","properties":{"client_view":{"type":"boolean","default":false},"view_as_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":"List accessible projects","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.jobs.list_projects","displayName":"List accessible projects"},{"name":"indexerlabs.jobs.list","description":"List jobs the signed-in user may view inside one accessible project.","inputSchema":{"type":"object","required":["project_name"],"properties":{"client_view":{"type":"boolean","default":false},"project_name":{"type":"string"},"owner_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"view_as_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":"List jobs in a project","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.jobs.list","displayName":"List jobs in a project"},{"name":"indexerlabs.jobs.project_access","description":"Read the current viewer's access details for a project. This tool never changes sharing or permissions.","inputSchema":{"type":"object","required":["project_name"],"properties":{"project_name":{"type":"string"},"owner_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"title":"Read project access","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.jobs.project_access","displayName":"Read project access"},{"name":"indexerlabs.jobs.info","description":"Read one accessible IndexerLabs job, including status, type, page count, and viewer access.","inputSchema":{"type":"object","required":["jobid"],"properties":{"jobid":{"type":"string"}},"additionalProperties":false},"title":"Read job details","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.jobs.info","displayName":"Read job details"},{"name":"indexerlabs.jobs.subject_review","description":"Read the subject-indexing review bundle for an accessible job when that review exists.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"origin_metadata":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Read subject review","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.jobs.subject_review","displayName":"Read subject review"},{"name":"indexerlabs.source.signed_pdf_url","description":"Create a short-lived signed URL for an accessible job's source PDF. Prefer source.read_pages or source.search when only text is needed.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"}},"additionalProperties":false},"title":"Get source PDF URL","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.source.signed_pdf_url","displayName":"Get source PDF URL"},{"name":"indexerlabs.editor.bootstrap","description":"Read the complete editor bootstrap for an accessible completed subject or scripture index, including variants, counts, verification state, and viewer access.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"client_view":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Open index editor context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.bootstrap","displayName":"Open index editor context"},{"name":"indexerlabs.editor.outline","description":"Read the normalized hierarchical outline for one editor variant.","inputSchema":{"type":"object","required":["job_id","variant"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string"}},"additionalProperties":false},"title":"Read index outline","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.outline","displayName":"Read index outline"},{"name":"indexerlabs.editor.entries_snapshot","description":"Read the full canonical editable entry tree and its optimistic-lock hash. Use this before exact edits.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"}},"additionalProperties":false},"title":"Read editable index snapshot","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.entries_snapshot","displayName":"Read editable index snapshot"},{"name":"indexerlabs.editor.entry","description":"Read one entry or subentry with locators, page evidence, source sentences, cross-references, and verification context.","inputSchema":{"type":"object","required":["job_id","entry_id"],"properties":{"fresh":{"type":"boolean","default":false},"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"},"entry_id":{"type":"string"}},"additionalProperties":false},"title":"Read entry context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.entry","displayName":"Read entry context"},{"name":"indexerlabs.editor.locator_statuses","description":"Read verification decisions and counts for editor locators.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"}},"additionalProperties":false},"title":"Read locator verification statuses","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.locator_statuses","displayName":"Read locator verification statuses"},{"name":"indexerlabs.editor.locator_catalog","description":"Read a paginated catalog of index locators and evidence.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"},"entry_limit":{"type":"integer","default":25},"after_entry_id":{"type":"string","default":""}},"additionalProperties":false},"title":"Browse locator catalog","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.locator_catalog","displayName":"Browse locator catalog"},{"name":"indexerlabs.editor.next_unreviewed","description":"Find the next entry and locator requiring verification.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"},"after_entry_id":{"type":"string","default":""}},"additionalProperties":false},"title":"Find next unreviewed locator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.next_unreviewed","displayName":"Find next unreviewed locator"},{"name":"indexerlabs.editor.quick_check_set","description":"Read the source and evidence context for a quick-check locator set.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"},"entry_id":{"type":"string","default":""},"after_entry_id":{"type":"string","default":""}},"additionalProperties":false},"title":"Read quick-check locator set","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.quick_check_set","displayName":"Read quick-check locator set"},{"name":"indexerlabs.editor.verification_log","description":"Read the job's locator verification event history.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"}},"additionalProperties":false},"title":"Read verification history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.verification_log","displayName":"Read verification history"},{"name":"indexerlabs.editor.action_logs","description":"Preferred tool for user-visible edit history. Read the action history visible to the signed-in viewer; use limit=1 when only the latest action is needed. Admin-only history remains filtered by the existing API. Do not use the technical session.actions audit as a substitute for editor history.","inputSchema":{"type":"object","required":["job_id"],"properties":{"q":{"type":"string","default":""},"limit":{"type":"integer","default":100},"job_id":{"type":"string"},"offset":{"type":"integer","default":0},"entry_ids":{"type":"string","default":""},"client_view":{"type":"boolean","default":false},"action_types":{"type":"string","default":""},"include_facets":{"type":"boolean","default":true},"related_entry_ids":{"type":"string","default":""}},"additionalProperties":false},"title":"Read editor action history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.action_logs","displayName":"Read editor action history"},{"name":"indexerlabs.editor.running_subentry_agents","description":"Read status only for create-subentry agent runs; this tool never starts an agent.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"}},"additionalProperties":false},"title":"Read running subentry agents","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.running_subentry_agents","displayName":"Read running subentry agents"},{"name":"indexerlabs.editor.running_agents","description":"Read status only for classification and cross-reference editor agents; this tool never starts an agent.","inputSchema":{"type":"object","required":["job_id"],"properties":{"job_id":{"type":"string"}},"additionalProperties":false},"title":"Read running editor agents","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"indexerlabs.editor.running_agents","displayName":"Read running editor agents"},{"name":"indexerlabs.editor.activity","description":"Record active editor time for this MCP editing session.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Record editor activity","logicalName":"indexerlabs.editor.activity","displayName":"Record editor activity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.verification_settings","description":"Update locator verification settings for an editable job.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Update verification settings","logicalName":"indexerlabs.editor.verification_settings","displayName":"Update verification settings","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.verify_locator","description":"Approve, reject, or reset one locator verification decision.","inputSchema":{"type":"object","required":["job_id","entry_id","locator_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"entry_id":{"type":"string"},"locator_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Verify one locator","logicalName":"indexerlabs.editor.verify_locator","displayName":"Verify one locator","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.verify_entry_locators","description":"Apply a bulk locator verification decision to one entry.","inputSchema":{"type":"object","required":["job_id","entry_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"entry_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Verify an entry's locators","logicalName":"indexerlabs.editor.verify_entry_locators","displayName":"Verify an entry's locators","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.restore_locator_statuses","description":"Restore previously captured locator verification statuses for an entry.","inputSchema":{"type":"object","required":["job_id","entry_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"entry_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Restore locator statuses","logicalName":"indexerlabs.editor.restore_locator_statuses","displayName":"Restore locator statuses","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.verify_all_locators","description":"Apply a verification decision across the accessible job.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Bulk verify job locators","logicalName":"indexerlabs.editor.verify_all_locators","displayName":"Bulk verify job locators","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.log_action","description":"Record an editor action. An edit_entry action with entry_id and new_label also persists the rename.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Record or rename an editor entry","logicalName":"indexerlabs.editor.log_action","displayName":"Record or rename an editor entry","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.undo_history_action","description":"Undo a connector edit selected from indexerlabs.editor.action_logs using its action_log_id. Prefer indexerlabs.editor.undo for the most recent write when its undo_snapshot_id and original active session are still available. This history path is conflict-safe, works for an older connector edit, and creates a native redo row.","inputSchema":{"type":"object","required":["job_id","action_log_id","mcp_session_id"],"properties":{"job_id":{"type":"string"},"action_log_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Undo connector edit from history","logicalName":"indexerlabs.editor.undo_history_action","displayName":"Undo connector edit from history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.redo_history_action","description":"Redo a connector edit by passing the action_log_id of the undo row returned by indexerlabs.editor.undo_history_action. The restore is conflict-safe and refuses to overwrite newer work.","inputSchema":{"type":"object","required":["job_id","action_log_id","mcp_session_id"],"properties":{"job_id":{"type":"string"},"action_log_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Redo connector edit from history","logicalName":"indexerlabs.editor.redo_history_action","displayName":"Redo connector edit from history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.merge_entries","description":"Merge a source entry into a target entry with the editor's native validation and action history.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Merge index entries","logicalName":"indexerlabs.editor.merge_entries","displayName":"Merge index entries","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.merge_under_sequence","description":"Apply the editor's ordered merge-under-target sequence operation.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Merge entries under target sequence","logicalName":"indexerlabs.editor.merge_under_sequence","displayName":"Merge entries under target sequence","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.undo_native_merge","description":"Undo an editor merge using the native merge snapshots supplied in the request body.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Undo native entry merge","logicalName":"indexerlabs.editor.undo_native_merge","displayName":"Undo native entry merge","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.restore_entry","description":"Restore an entry using its native action-history snapshot and restore context.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Restore deleted entry","logicalName":"indexerlabs.editor.restore_entry","displayName":"Restore deleted entry","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.delete_entry","description":"Delete one entry from an editable index. The response contains native restoration context and the MCP captures a full undo snapshot.","inputSchema":{"type":"object","required":["job_id","entry_id","mcp_session_id"],"properties":{"job_id":{"type":"string"},"variant":{"type":"string","default":"requested"},"entry_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Delete index entry","logicalName":"indexerlabs.editor.delete_entry","displayName":"Delete index entry","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.delete_locator","description":"Delete one locator token from an entry. The MCP captures a full undo snapshot.","inputSchema":{"type":"object","required":["job_id","entry_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"entry_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Delete entry locator","logicalName":"indexerlabs.editor.delete_locator","displayName":"Delete entry locator","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.compile","description":"Compile the current editable index into the requested export format without launching an AI agent.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Compile edited index","logicalName":"indexerlabs.editor.compile","displayName":"Compile edited index","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.compile_verified","description":"Compile the current verification-filtered index without launching an AI agent.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Compile verified index","logicalName":"indexerlabs.editor.compile_verified","displayName":"Compile verified index","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.ack_subentry_agents","description":"Acknowledge already completed create-subentry agent runs. This does not launch an agent.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Acknowledge completed subentry agents","logicalName":"indexerlabs.editor.ack_subentry_agents","displayName":"Acknowledge completed subentry agents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.editor.ack_agents","description":"Acknowledge already completed classification or cross-reference agent runs. This does not launch an agent.","inputSchema":{"type":"object","required":["job_id","mcp_session_id"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"mcp_session_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Acknowledge completed editor agents","logicalName":"indexerlabs.editor.ack_agents","displayName":"Acknowledge completed editor agents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.review_classifications","description":"COST-BEARING: classify subject-review terms with an AI model. May consume credits or model budget and requires explicit per-call confirmation.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run review classification agent","logicalName":"indexerlabs.compute.review_classifications","displayName":"Run review classification agent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.add_entries","description":"COST-BEARING: launch the editor add-entries agent. May consume credits or model budget and requires explicit per-call confirmation.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run add-entries agent","logicalName":"indexerlabs.compute.add_entries","displayName":"Run add-entries agent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.classify_entries","description":"COST-BEARING: launch entry classification. May consume credits or model budget and requires explicit per-call confirmation.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run classification agent","logicalName":"indexerlabs.compute.classify_entries","displayName":"Run classification agent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.inject_cross_references","description":"COST-BEARING: launch AI cross-reference generation and injection. May consume credits or model budget and requires explicit per-call confirmation.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run cross-reference agent","logicalName":"indexerlabs.compute.inject_cross_references","displayName":"Run cross-reference agent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.create_subentries","description":"COST-BEARING: launch AI subentry generation for an entry. May consume credits or model budget and requires explicit per-call confirmation.","inputSchema":{"type":"object","required":["job_id","entry_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"entry_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run create-subentries agent","logicalName":"indexerlabs.compute.create_subentries","displayName":"Run create-subentries agent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"indexerlabs.compute.app55_sync","description":"COST-BEARING AND ADMIN-RESTRICTED: run the existing app-5.5 agentic locator synchronization. Existing API permissions still apply; explicit confirmation is required.","inputSchema":{"type":"object","required":["job_id","mcp_session_id","confirm_cost","cost_acknowledgement"],"properties":{"body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"job_id":{"type":"string"},"confirm_cost":{"type":"boolean","const":true},"mcp_session_id":{"type":"string","format":"uuid"},"cost_acknowledgement":{"type":"string","const":"RUN PAID INDEXERLABS AGENT"}},"additionalProperties":false},"title":"Run agentic locator sync","logicalName":"indexerlabs.compute.app55_sync","displayName":"Run agentic locator sync","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=IndexerLabs&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuaW5kZXhlcmxhYnMuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22IndexerLabs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.indexerlabs.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22IndexerLabs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.indexerlabs.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=IndexerLabs&connectorUrl=https%3A%2F%2Fmcp.indexerlabs.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"IndexerLabs\" --url \"https://mcp.indexerlabs.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/indexerlabs-mcp-c256ecc179","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/indexerlabs-mcp-c256ecc179/tools/{tool}","mcpServerUrl":"https://mcp.indexerlabs.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/indexerlabs-mcp-c256ecc179?live=1"}