Endpoints: 28,729MCP servers: 18,414Payout addresses: 2,071Paid calls: 1,562Letters: 14Defects: 1,336counted just now
teppi

Server definition

Hash
sha256:e393786c24c1710454011e5a7eae6a8cef46e8ec69b72a1d40f91bcb37987d1b
What it is
What a remote MCP server returned when asked what it offers: 9 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Create a new ACC issue (field observation, coordination clash, safety, quality, etc.) in the target project via the APS Construction Issues API.\n\nWhen to use: The user wants to log a new issue — e.g. 'open a high-priority issue about the leaking valve on level 3' or a downstream agent detected a defect during a model review and needs to record it for the project team.\n\nWhen NOT to use: Do not use to modify an existing issue (use acc_update_issue) and do not use for RFIs (use acc_create_rfi).\n\nAPS scopes: data:read data:write account:read.\n\nRate limits: ACC Issues API limited to ~100 req/min per app; APS default ~50 req/min per endpoint — batch creations with backoff.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks 'Create Issues' permission on the project or scope insufficient — surface to user); 404 (project_id not found — verify the 'b.' prefix and that the project belongs to a hub the app can see via acc_list_projects); 422 (validation — required field like title/description missing or priority enum invalid); 429 (rate limit — retry after 60s); 5xx (ACC upstream — retry with jitter, do not double-create).\n\nSide effects: Creates a persistent issue record visible to all project members. NOT idempotent — a retry on a 5xx may create duplicates; dedupe by title before retrying.", "inputSchema": { "properties": { "assigned_to": { "description": "Optional APS user ID (oxygen ID / ACC user UUID) of the assignee. Leave null for unassigned.", "examples": [ "ABC123XYZ456" ], "type": "string" }, "description": { "description": "Detailed issue description / body. Plain text, up to ~10,000 chars. Required.", "examples": [ "Observed active drip at VAV-312 supply connection during 2026-04-18 walkthrough. Photos attached in linked RFI." ], "type": "string" }, "due_date": { "description": "Optional due date in ISO 8601 date format (YYYY-MM-DD).", "examples": [ "2026-05-01" ], "type": "string" }, "priority": { "description": "Issue priority. Defaults to 'medium' if omitted.", "enum": [ "critical", "high", "medium", "low" ], "examples": [ "high" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use the 'b.' prefix literal (e.g. 'b.a1b2c3d4-...'). The worker strips the prefix internally for the Issues endpoint. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "title": { "description": "Short issue title, 1–255 chars. Required.", "examples": [ "Leaking valve on Level 3 mech room" ], "type": "string" } }, "required": [ "project_id", "title", "description" ], "type": "object" }, "name": "acc_create_issue", "outputSchema": null }, { "description": "Create a new Request For Information (RFI) in an ACC project via the APS Construction RFIs API. RFI is created in 'draft' status — the project workflow owner typically transitions it to 'submitted'.\n\nWhen to use: The user needs a formal question-of-record to the design or GC team — e.g. 'raise an RFI asking for clarification on the Level 2 beam schedule'. RFIs are the auditable channel for clarifications; issues are for field observations.\n\nWhen NOT to use: Do not use for informal observations (use acc_create_issue) or to answer an existing RFI (not supported here).\n\nAPS scopes: data:read data:write account:read.\n\nRate limits: APS default ~50 req/min per endpoint per app. RFIs share the Construction API umbrella with issues (~100 req/min combined).\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks RFI create permission on project); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (validation — subject/question missing or priority enum invalid); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter, check for duplicate before retrying).\n\nSide effects: Creates a persistent RFI record. NOT idempotent — retry on 5xx risks duplicates; dedupe by subject before retrying.", "inputSchema": { "properties": { "assigned_to": { "description": "Optional APS user ID of the person the RFI is directed to.", "examples": [ "ABC123XYZ456" ], "type": "string" }, "priority": { "description": "RFI priority. Defaults to 'medium' if omitted.", "enum": [ "critical", "high", "medium", "low" ], "examples": [ "high" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "question": { "description": "Full RFI question body. Plain text, up to ~10,000 chars. Required.", "examples": [ "Drawing S-201 shows W14x22 but schedule lists W14x26 for gridline C/4. Please confirm which is correct." ], "type": "string" }, "subject": { "description": "Short RFI subject/title, 1–255 chars. Required.", "examples": [ "Clarification on Level 2 beam schedule" ], "type": "string" } }, "required": [ "project_id", "subject", "question" ], "type": "object" }, "name": "acc_create_rfi", "outputSchema": null }, { "description": "List and filter issues from a single ACC project (limit 50 per call) via the APS Construction Issues API.\n\nWhen to use: The user or upstream agent needs to review open issues, count issues by status/priority, or look up an issue_id before calling acc_update_issue. E.g. 'show me all critical open issues on the Tower project'.\n\nWhen NOT to use: Do not use to fetch RFIs (use acc_list_rfis) or to search documents.\n\nAPS scopes: data:read account:read. No write scope required.\n\nRate limits: ACC Issues API ~100 req/min per app; results pageable (limit 50 here, max 200 upstream). For large projects, call once and filter client-side instead of looping.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks 'View Issues' permission on project or scope insufficient); 404 (project_id not found — verify 'b.' prefix and hub membership via acc_list_projects); 422 (invalid filter value — check status/priority spelling); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).\n\nSide effects: None. Read-only and idempotent.", "inputSchema": { "properties": { "assigned_to": { "description": "Optional assignee APS user ID filter. Accepted but not currently forwarded as a URL filter by this server — filter client-side if needed.", "examples": [ "ABC123XYZ456" ], "type": "string" }, "priority": { "description": "Optional priority filter. Typical values: critical, high, medium, low.", "examples": [ "critical" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "status": { "description": "Optional status filter. Typical values: open, in_review, closed, draft.", "examples": [ "open" ], "type": "string" } }, "required": [ "project_id" ], "type": "object" }, "name": "acc_list_issues", "outputSchema": null }, { "description": "Enumerate every ACC and BIM 360 project the authenticated APS app can see by walking all accessible hubs and their project lists.\n\nWhen to use: The agent needs to discover project IDs before calling any other tool (e.g. the user says 'show me my projects' or 'find issues in the Tower project' and no project_id is known yet). Also useful to confirm hub membership for a project.\n\nWhen NOT to use: Do not call this repeatedly in a loop — cache the result; if the user already supplied a project_id starting with 'b.', skip discovery.\n\nAPS scopes: data:read account:read. No write scope needed.\n\nRate limits: APS default ~50 req/min per app per endpoint; BIM 360 hubs endpoints are pageable (limit 200). This tool fans out 1 hubs call + N project calls (one per hub) so call it sparingly on tenants with many hubs.\n\nErrors: 401 (APS token expired — refresh and retry once); 403 (app not provisioned in the BIM 360/ACC account — ask user to have an account admin add the APS client_id); 404 (rare, indicates hub deleted mid-call); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).\n\nSide effects: None. Read-only and idempotent.", "inputSchema": { "properties": {}, "type": "object" }, "name": "acc_list_projects", "outputSchema": null }, { "description": "List and filter RFIs from a single ACC project (limit 50 per call) via the APS Construction RFIs API.\n\nWhen to use: The user wants to review open RFIs, count outstanding ones, or look up an RFI ID. E.g. 'how many RFIs are still open on the Tower project?'\n\nWhen NOT to use: Do not use for issues (use acc_list_issues) or document search (use acc_search_documents).\n\nAPS scopes: data:read account:read. No write scope required.\n\nRate limits: APS default ~50 req/min per endpoint; ACC Construction API shared ~100 req/min cap. Pageable (limit 50 here; upstream max 200).\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks RFI view permission); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (invalid filter value); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry).\n\nSide effects: None. Read-only and idempotent.", "inputSchema": { "properties": { "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "status": { "description": "Optional RFI status filter. Typical values: draft, submitted, open, answered, closed, void.", "examples": [ "open" ], "type": "string" } }, "required": [ "project_id" ], "type": "object" }, "name": "acc_list_rfis", "outputSchema": null }, { "description": "Fetch the full ACC project metadata record (name, type, status, dates, extension attributes) for a single project via APS Data Management. If hub_id is omitted the tool picks the first accessible hub, which may be wrong on multi-hub tenants.\n\nWhen to use: The user asks 'tell me about project X' or an agent needs project metadata (start/end dates, type, Forma/BIM 360 flavor) before deciding which downstream tool to call.\n\nWhen NOT to use: Do not use as a cheap existence check — prefer acc_list_projects which returns hub_id with every project and is one call regardless of tenant size.\n\nAPS scopes: data:read account:read. Forma / BIM 360 hubs endpoints only require data:read.\n\nRate limits: APS default ~50 req/min per endpoint; BIM 360 hubs endpoints pageable (limit 200). Cache results for the session.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks project view or app not in account); 404 (project not in the chosen hub — supply the correct hub_id, or call acc_list_projects first); 422 (malformed project_id — confirm 'b.' prefix); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry).\n\nSide effects: None. Read-only and idempotent.", "inputSchema": { "properties": { "hub_id": { "description": "Optional ACC/BIM 360 hub ID. Also uses the 'b.' prefix literal. If omitted, the first hub returned by APS is used — prefer supplying this explicitly on multi-hub tenants to avoid 404s.", "examples": [ "b.abcdef01-2345-6789-abcd-ef0123456789" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal (this endpoint — unlike Issues/RFIs — wants the prefixed form). Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" } }, "required": [ "project_id" ], "type": "object" }, "name": "acc_project_summary", "outputSchema": null }, { "description": "Full-text search the ACC Docs repository of a project for drawings, specs, submittals, and other files via the APS Data Management search endpoint.\n\nWhen to use: The user wants to find a document by keyword (filename, sheet number, or metadata match). E.g. 'find the latest A-201 sheet' or 'search for mechanical specs on Tower project'.\n\nWhen NOT to use: Do not use to upload a file (use acc_upload_file); do not use to fetch issues/RFIs. If you already have a document URN, fetch it directly with an agent that has Data Management folder/item access.\n\nAPS scopes: data:read account:read. No write scope required.\n\nRate limits: APS Data Management ~50 req/min per app per endpoint; pageable (limit 200 upstream). Avoid tight query loops.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks Docs view permission on the project); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (invalid filter syntax — simplify query text); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).\n\nSide effects: None. Read-only and idempotent.", "inputSchema": { "properties": { "document_type": { "description": "Optional APS document type filter (e.g. 'items:autodesk.bim360:File', 'items:autodesk.bim360:Document').", "examples": [ "items:autodesk.bim360:Document" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal. The worker re-adds the prefix for Data Management URL formatting. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "query": { "description": "Free-text search string matched against filenames, titles, and indexed metadata. 1–500 chars.", "examples": [ "A-201 floor plan" ], "type": "string" } }, "required": [ "project_id", "query" ], "type": "object" }, "name": "acc_search_documents", "outputSchema": null }, { "description": "Patch an existing ACC issue — change status, priority, assignee, or description via the APS Construction Issues API.\n\nWhen to use: The user asks to close/reopen/escalate an issue, reassign it, or edit its body. Typical agent flow: acc_list_issues → pick an id → acc_update_issue.\n\nWhen NOT to use: Do not use to create issues (acc_create_issue) or to add comments (not supported by this server).\n\nAPS scopes: data:read data:write account:read.\n\nRate limits: ACC Issues API ~100 req/min per app; APS default ~50 req/min per endpoint.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks edit permission or status transition not allowed by project workflow); 404 (project_id or issue_id not found — verify 'b.' prefix on project_id and that issue_id belongs to that project); 422 (validation — invalid status/priority enum or illegal state transition); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).\n\nSide effects: Mutates the issue record. Idempotent when the same body is resent (PATCH semantics) — safe to retry.", "inputSchema": { "properties": { "assigned_to": { "description": "APS user ID of the new assignee. Omit to leave unchanged.", "examples": [ "ABC123XYZ456" ], "type": "string" }, "description": { "description": "Replacement description body. Plain text.", "examples": [ "Root cause confirmed as cracked fitting; scheduling replacement." ], "type": "string" }, "issue_id": { "description": "UUID of the issue to update, as returned by acc_list_issues or acc_create_issue.", "examples": [ "7f3e2a1b-4c5d-6e7f-8a9b-0c1d2e3f4a5b" ], "type": "string" }, "priority": { "description": "New priority.", "enum": [ "critical", "high", "medium", "low" ], "examples": [ "critical" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use the 'b.' prefix literal. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" }, "status": { "description": "New status. Project workflow may forbid certain transitions (e.g. draft → closed).", "enum": [ "open", "in_review", "closed", "draft" ], "examples": [ "closed" ], "type": "string" } }, "required": [ "project_id", "issue_id" ], "type": "object" }, "name": "acc_update_issue", "outputSchema": null }, { "description": "Upload a file from a public source URL into an ACC project folder. Runs the full four-step APS Data Management flow: top-folder discovery → storage object creation → OSS PUT of bytes → first-version item creation.\n\nWhen to use: The user wants to push a document/photo/model into ACC Docs — e.g. 'upload this site photo to the Tower project Photos folder' or an automation needs to archive an exported report into Project Files.\n\nWhen NOT to use: Do not use for files already in ACC; do not use for files behind auth-gated URLs (fetch step is an unauthenticated GET). For very large files (>100MB), prefer the chunked/signed-S3 upload flow, not this single-PUT implementation.\n\nAPS scopes: data:read data:write data:create account:read.\n\nRate limits: APS Data Management ~50 req/min per endpoint; OSS upload bandwidth typically 100 MB/min per app. This tool issues 3–5 APS calls per upload, so budget accordingly.\n\nErrors: 401 (APS token expired — refresh); 403 (user lacks folder write permission — ask account admin to grant 'Edit' on folder); 404 (project_id not found or folder_path does not match any top folder — verify 'b.' prefix, hub membership, and folder name); 422 (invalid file_name or conflicting version); 429 (rate limit — back off 60s); 5xx (ACC/OSS upstream — retry with jitter BUT be cautious: storage object may already be created so reuse, do not re-create). Also: if source file_url returns non-2xx, the tool throws before touching ACC.\n\nSide effects: Creates a storage object, uploads bytes, and creates a versioned item in the target folder. NOT idempotent — a retry may create a duplicate item with a new version. Surface the returned item_id to the user to avoid re-uploads.", "inputSchema": { "properties": { "file_name": { "description": "Destination filename in ACC, including extension. 1–255 chars. Avoid path separators.", "examples": [ "site-2026-04-18.jpg" ], "type": "string" }, "file_url": { "description": "Publicly fetchable HTTPS URL of the source file. Must return 2xx to an unauthenticated GET. Max practical size ~100MB for this single-PUT implementation.", "examples": [ "https://cdn.example.com/photos/site-2026-04-18.jpg" ], "type": "string" }, "folder_path": { "description": "Case-insensitive substring of the target top-level folder's display name. Defaults to 'Project Files'. Common values: 'Project Files', 'Plans', 'Photos', 'Submittals'.", "examples": [ "Photos" ], "type": "string" }, "project_id": { "description": "ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.", "examples": [ "b.a1b2c3d4-1234-5678-9abc-def012345678" ], "type": "string" } }, "required": [ "project_id", "file_url", "file_name" ], "type": "object" }, "name": "acc_upload_file", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e393786c24c1710454011e5a7eae6a8cef46e8ec69b72a1d40f91bcb37987d1b | sha256sum