MCP App Store
by KeenEthics

Overview

AutoRFP.ai is an accuracy-first AI platform for RFPs, security questionnaires, and DDQs. This plugin connects ChatGPT to your live RFP, DDQ or security questionnaire projects and source-grounded content library. Ask what's outstanding across your current RFP projects, list the questions still waiting on answers, and search for accurate answers in your content library without leaving the conversation. Draft with content your team has already written and approved. When you're answering a security questionnaire, building a proposal section, or replying to a buyer, ChatGPT works from your approved content. Requires a paid AutoRFP.ai account.

Tools

get_project

ChatGPT
Returns full details for a project: header (name, issuer, status, due date, description), requirement counts broken down by progress status, and the categorised tags applied to this project's requirements. Use list_requirements next to retrieve the actual question-and-answer content. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

list_content

ChatGPT
Enumerates the organisation's content library — Q&A pairs, snippets, and imported documentation. Unlike search_content (which is semantic and ranked), this tool lists by metadata: filter by tagIds, fileType (QA/documentation/snippet/entireFile), createdAfter/createdBefore/updatedAfter/updatedBefore (accept ISO 8601 strings like '2025-01-01T00:00:00Z' or epoch ms), or hasAnswer (Q&A only — drops blank/whitespace answers). Returns 25 items per page sorted by updatedAt desc, then createdAt desc, then id asc — bulk-imported libraries with identical timestamps stay deterministic. pagination.total reflects the filtered count, not the unfiltered library size. Each row carries fileType, question/answer (Q&A pairs only — null on documentation), section (documentation/entireFile only — null on Q&A), tagIds, createdAt and updatedAt (both ISO 8601), usageCount (all-paths usage counter — may exceed list_content_usage's row count when snippet embeds/bulk-imports are involved), referenceUrl, and optional sourceUrl (key omitted for native content; check 'sourceUrl' in row). Useful for surveying coverage, finding recent additions, or auditing tag application. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

list_content_usage

ChatGPT
Reverse lookup: given a content library item's id, returns the requirements (in projects) that have reused it. Two usage signals are surfaced: 'auto-generated' (the response engine retrieved this content as a primary or secondary source for an answer — similarityScore included when this was the primary source) and 'user-added' (a user explicitly inserted this content from the library via the editor). Filter by usageType, usedAfter/usedBefore (accept ISO 8601 strings like '2025-01-01T00:00:00Z' or epoch ms; usage = response last-update). Each row carries projectId, projectName, projectStatus (won/lost/inProgress visible here for outcome correlation), projectDueAt (ISO 8601), responseId, questionNumber, question, usageType, usedAt (ISO 8601), and similarityScore (only on auto-generated rows where this content was the primary source). Returns 25 rows per page sorted by usedAt desc. SCOPE NOTE: results are filtered against per-project membership — confidential projects you aren't a member of, and soft-deleted projects, are not returned even if they contain a usage. May still return fewer rows than list_content's usageCount because snippet-embed usages (snippetEmbeds[].snippetId) aren't indexed by this query. Unknown contentIds return empty results without error — validate IDs via search_content or list_content first if uncertain. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

list_projects

ChatGPT
Returns RFP projects accessible to the authenticated user, with the categories and tags applied to each project's requirements. Filter by status, due date range, or tag IDs. Each result includes the project id, name, status, issuer, due date, description, and category-grouped tags — so you can identify the right project by topic without calling get_project. Draft-status projects are excluded by default; pass status: ['draft'] (alone or with other statuses) to include them. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

list_requirements

ChatGPT
Returns paginated requirements (the questions and their current/approved answers) for a project. Filter by status — prefer 'approved' for reliable answers — by tag IDs, by date range (answeredAfter/answeredBefore accept ISO 8601 strings like '2025-01-01T00:00:00Z' or epoch ms; useful for scoping to a quarter or year), by lastUpdatedBy (user IDs of the last person to update the response — closest signal for authorship in single-owner workflows, less reliable in collaborative ones), or by hasAnswer to drop blank/whitespace-only answers. Each result includes question, answer, section context, status, tags applied, answeredAt (ISO 8601 string), and lastUpdatedBy user. Pagination returns 25 requirements per page; use the page argument and check pagination.hasMore to walk further. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

list_tags

ChatGPT
Returns all categories and the tags within each, configured for the organisation. Categories are top-level groupings (e.g. 'Topic', 'Region'); tags are the values within them (e.g. 'Security', 'EMEA'). Use this to discover the tag vocabulary before filtering list_projects, list_requirements, or search_content by tag.

search_content

ChatGPT
Semantic search over the organisation's approved content library — past RFP answers indexed for retrieval. Returns ranked text excerpts (with file name and section context) that the agent can quote or paraphrase. Optionally filter by tag IDs to narrow results to a category. Use list_tags to discover the tag vocabulary first. ID HANDLING: row IDs (id, contentId, responseId, projectId) are for chaining tool calls (e.g. passing to list_content_usage or get_project). Do NOT include them in user-facing prose — refer to items by question text, file name, or project name. When a row carries a referenceUrl field (search_content / list_content), use that for clickable links instead of the raw id.

get_project

Claude

list_content

Claude

list_content_usage

Claude

list_projects

Claude

list_requirements

Claude

list_tags

Claude

search_content

Claude

Example Prompts

Click any prompt to copy it.

App Stats

14

Tools

1

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily