From loopio
Use when answering RFPs, RFIs, DDQs, security questionnaires, or proposal questions from a Loopio answer library; when searching, creating, updating, or auditing Loopio library entries; or when working with Loopio projects (questions, answers, status reporting) through Loopio MCP tools such as search_library.
How this skill is triggered — by the user, by Claude, or both
Slash command
/loopio:loopioThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill drives the tools of the `loopio-mcp` MCP server (`search_library`,
This skill drives the tools of the loopio-mcp MCP server (search_library,
get_library_entry, get_library_structure, list_projects, get_project,
get_project_questions, get_project_status_summary, and the gated write
tools). If these tools are absent, the server is not configured or the tool's
tier is disabled; say so and point to
https://github.com/fredericboyer/loopio-mcp#readme. Never simulate a tool
result or fabricate library content.
{stackID, categoryID?, subCategoryID?}.get_library_structure (no arguments); never
guess a stackID or categoryID.encryption at rest, not the full question.locations (IDs from get_library_structure) when the library
is large or the term is ambiguous.lastUpdatedDate: { gte: "<ISO-8601>" }
or sort candidates by their last-updated date.searchInQuestions / searchInAnswers /
searchInTags narrow where the query applies; exactPhrase for verbatim
strings; synonyms to broaden.truncated: true means there were more matches than
returned: narrow the query (more specific terms, a location, a date
filter) instead of asking for everything.get_library_entry (id) before relying
on an entry; expandMergeVariables: true substitutes placeholder
variables.get_project_questions (projectId, optional
sectionId/subSectionId) lists what needs answering;
answer_project_entry (id, answerText) writes an answer back
(write-gated, see below).search_library for the new
question's terms first; if an equivalent entry exists, update it instead
of duplicating.create_library_entry: questions (one or more phrasings),
answerText, location (stackID required), optional languageCode and
tags.update_library_entry (id + JSON Patch), e.g. replace an
answer: { "op": "replace", "path": "/answer/text", "value": "..." }.get_project_status_summary (lastUpdatedDateGt) shows recent project
activity; search_library with lastUpdatedDate: { lte: "<cutoff>" }
finds entries not touched since the cutoff.update_library_entry.delete_library_entry is permanent. Confirm with the user before any
delete, and prefer updating over deleting.Mutating tools are opt-in on the server: create_library_entry,
update_library_entry, and answer_project_entry require
LOOPIO_ENABLE_WRITES=true; delete_library_entry additionally requires
LOOPIO_ENABLE_DELETES=true. Gated-off tools are not registered at all, so
their absence is configuration, not a bug. If asked to write while the tools
are missing, explain the gate instead of retrying.
list_projects filters by rfxTypes (RFP, RFI, DDQ, SQ, PP, OTHER) and
owners (user IDs).get_project (id) for one project's data; get_project_questions for its
entries.get_project_status_summary (lastUpdatedDateGt, ISO-8601) summarizes
project status for reporting and triage; it is also the entry point of the
maintenance loop above.LOOPIO_CLIENT_ID /
LOOPIO_CLIENT_SECRET, or the Loopio app lacks a needed scope).truncated: true: result cap reached; narrow the query.npx claudepluginhub fredericboyer/loopio-mcp --plugin loopioGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.