accelo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACCELO_SCOPE | No | OAuth2 scope; defaults to read(all). Add write access explicitly, e.g. read(all),write(all), only if you need the write tools. | read(all) |
| ACCELO_MCP_PORT | No | Port used by the SSE transport. | 3000 |
| ACCELO_AUTH_TYPE | No | Authentication type: web, service, installed, or public. Defaults to web. | web |
| ACCELO_CLIENT_ID | Yes | OAuth2 client ID from an Accelo application | |
| ACCELO_DEPLOYMENT | Yes | Deployment prefix, such as `example` for `example.accelo.com` | |
| ACCELO_REDIRECT_URI | No | Local OAuth callback URL. Optional for web (defaults to http://localhost:9876/callback); required for public with no default. Must exactly match the redirect URI registered on the Accelo application. | |
| ACCELO_CLIENT_SECRET | No | OAuth2 client secret; not required for public PKCE applications |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| accelo_get_contextA | Get the Accelo object model, relationships, and query guide. Call this FIRST before making complex queries. Returns:
This context enables you to correctly traverse relationships and construct multi-step queries across the Accelo data model. |
| accelo_list_companiesA | List companies from Accelo with optional filtering, field selection, and search. Args: filters: Filter dict. Supported keys: id, status, standing, manager_id, custom_id, website, contact_number, postal_address, default_affiliation, date_created_before/after, date_modified_before/after, order_by_asc/desc (id, name, date_created, date_modified, standing, status) fields: Additional fields to return, e.g. "website,phone,postal_address(city)", "_ALL" search: Search over website, name, phone, fax page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_companyC | Get a single company by ID. Args: id: Company ID fields: Additional fields to return, e.g. "website,phone,postal_address(city)" |
| accelo_count_companiesC | Count companies matching the given filters. Args: filters: Same filters as accelo_list_companies search: Search over website, name, phone, fax |
| accelo_create_companyA | Create a new company in Accelo. Args: name: Company name (required) website: Company website URL phone: Phone number fax: Fax number comments: Notes about the company status_id: Initial status ID standing: Initial standing (overridden by status_id if both provided) parent_id: Parent company ID custom_id: Custom identifier fields: Additional fields to return in response |
| accelo_update_companyC | Update an existing company. Args: id: Company ID (required) name: New company name website: New website URL phone: New phone number fax: New fax number comments: New comments fields: Additional fields to return in response |
| accelo_delete_companyC | Delete a company from Accelo. Args: id: Company ID to delete |
| accelo_list_company_managersB | List the managers (staff) of a company. Args: company_id: Company ID fields: Additional fields on the returned staff objects page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_add_company_managerB | Add a staff member as a manager of a company. Args: company_id: Company ID manager_id: staff_id of the staff member to set as manager (required) nature: Relationship nature — "professional" (default), "confidential", or "private" |
| accelo_remove_company_managerA | Remove a manager from a company. Identified by the manager relationship's Args: company_id: Company ID relationship_id: The relationship_id of the manager record to remove |
| accelo_list_contactsB | List contacts from Accelo. Args: filters: Filter dict. Keys: id, email, title, standing, affiliation, status, username, contact_number, date_created/modified_before/after, order_by_asc/desc (id, fullname, firstname, surname, date_modified, etc.) fields: Additional fields, e.g. "default_affiliation(),comments" search: Search over firstname, surname, email page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_contactC | Get a single contact by ID. Args: id: Contact ID fields: Additional fields to return |
| accelo_count_contactsC | Count contacts matching the given filters. |
| accelo_create_contactB | Create a new contact (also creates an affiliation to the company). Args: firstname: First name (required) surname: Surname (required) company_id: Company to affiliate with (required) email: Email address phone: Phone number mobile: Mobile number position: Job position/title at the company title: Honorific (Mr, Ms, etc.) fields: Additional fields to return |
| accelo_update_contactB | Update an existing contact. Args: id: Contact ID (required) firstname: New first name surname: New surname title: New honorific comments: New comments status: New status ID fields: Additional fields to return |
| accelo_deactivate_contactA | Deactivate a contact (set standing to inactive). This does NOT delete the contact — the Accelo API has no contact-delete operation; it only sets the contact's standing to "inactive". Takes no other parameters. Args: id: Contact ID to deactivate |
| accelo_list_affiliationsA | List affiliations (contact-company links) from Accelo. An affiliation links a Contact to a Company and holds contact details (email, phone, position) for that relationship. A contact can have multiple affiliations (one per company they work with). Affiliations are referenced by issues, prospects, and invoices to identify the client contact. affiliation.company_id → Company, affiliation.contact_id → Contact. Args: filters: Filter dict. Keys: id, email, standing, status, company, contact, postal_address, physical_address, contact_number, invoice_method, date_created/modified/last_interacted_before/after, order_by_asc/desc fields: Additional fields, e.g. "company(),contact(),position" search: Search over firstname, surname, fax, phone, mobile, email page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_affiliationC | Get a single affiliation by ID. Args: id: Affiliation ID fields: Additional fields to return |
| accelo_count_affiliationsC | Count affiliations matching the given filters. |
| accelo_create_affiliationB | Create a new affiliation (link a contact to a company). Args: company_id: Company ID (required) contact_id: Contact ID (required) email: Email for this affiliation phone: Phone for this affiliation mobile: Mobile for this affiliation position: Position at the company fields: Additional fields to return |
| accelo_update_affiliationC | Update an existing affiliation. Args: id: Affiliation ID (required) email: New email phone: New phone mobile: New mobile position: New position standing: New standing fields: Additional fields to return |
| accelo_delete_affiliationA | Delete an affiliation. Args: id: Affiliation ID to delete |
| accelo_list_activitiesA | List activities (notes, emails, calls, meetings) from Accelo. Activities track all communication and time logging. Each activity is recorded 'against' an object (company, job, issue, task, milestone, contract, prospect). To find which company an activity belongs to, resolve via against_type:
Use fields="against()" to expand the against object inline. SUBJECT/TEXT SEARCH IS NOT SUPPORTED. Accelo's GET /activities endpoint does
NOT honour the _search parameter and exposes NO subject/body filter — passing
Args:
filters: Filter dict. Keys: id, parent_id, thread_id, against_type, against_id,
owner_id, owner_type, medium, visibility, staff, activity_class,
activity_priority, task, time_allocation,
date_created/logged/started/ended_before/after, order_by_asc/desc.
NOTE: there is no |
| accelo_get_activityC | Get a single activity by ID. Args: id: Activity ID fields: Additional fields to return, e.g. "body,owner(),against()" |
| accelo_count_activitiesC | Count activities matching the given filters. |
| accelo_create_activityB | Create a new activity (note, email, call, or meeting). Args: subject: Activity subject (required) against_type: Object type to create against (required). E.g. company, job, issue, staff, task against_id: ID of the object to create against (required) body: Activity body/content medium: Type — 'note', 'meeting', 'email', or 'call' (default: note) priority_id: Priority ID class_id: Activity class ID owner_type: Owner type ('staff' or 'affiliation') owner_id: Owner ID (staff_id or affiliation_id) billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return |
| accelo_update_activityB | Update an existing activity. Args: id: Activity ID (required) subject: New subject (only if owner) body: New body (only if owner) visibility: New visibility priority_id: New priority ID billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return |
| accelo_delete_activityC | Delete an activity. Args: id: Activity ID to delete |
| accelo_list_interactionsA | List the interactions (senders/recipients) on a single activity. An interaction is a sender or recipient of an activity — a staff member or
contact with a role of creator/from/to/cc/bcc/attendee/did_not_attend.
The response contains a "staff" array and a "contacts" array; each object
carries an Args: id: Activity ID fields: Additional fields on the returned staff/contact objects |
| accelo_count_interactionsC | Count the interactions on a single activity. Args: id: Activity ID |
| accelo_get_activity_time_allocatedA | Get aggregate time allocated across a set of activities. Returns the summed billable/nonbillable seconds and total charged for the activities matched by the filters. This is an AGGREGATION over a collection (endpoint GET /activities/allocations), NOT a single activity's allocation — pass the same filters accepted by accelo_list_activities to scope the set (e.g. {"staff": 14, "date_logged_after": 1690000000}). Args: filters: Same filter dict as accelo_list_activities (staff, against_type, against_id, date_logged_before/after, etc.) |
| accelo_list_activity_threadsA | List activity threads from Accelo. A thread groups an original activity with the activities sent in response to it (e.g. an email and its replies). Each thread carries the original activity's id, an event_text, a total_activities count, and the most recent activity in the thread. Args: filters: Filter dict. Keys: against_type + against_id (must be supplied together — restrict to threads whose original activity is against that object), staff_involved (staff_id), scope ("internal"/"external"), date_logged_before/after fields: Additional fields on the activities listed in each thread page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_count_activity_threadsC | Count activity threads matching the given filters. |
| accelo_list_thread_activitiesB | List all activities within a single thread. Args:
thread_id: The thread's ID (the activity_id of the original activity in
the thread — see the |
| accelo_list_issuesA | List issues (tickets) from Accelo. Issues are 'against' a company or a job. To find the company:
Args: filters: Filter dict. Keys: id, standing, custom_id, against_type, against_id, status, issue_type, affiliation, class, issue_priority, assignee, date_created/started/due/modified/closed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,resolution_detail,assignee()" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_issueC | Get a single issue (ticket) by ID. Args: id: Issue ID fields: Additional fields to return |
| accelo_count_issuesC | Count issues matching the given filters. |
| accelo_create_issueB | Create a new issue (ticket). Args: title: Issue title (required) type_id: Issue type ID (required) against_type: Object type (required) — e.g. company, job against_id: Object ID (required) description: Issue description status_id: Initial status ID class_id: Issue class ID assignee: Staff ID to assign priority_id: Priority ID affiliation_id: Affiliation ID date_started: Start date (unix timestamp) date_due: Due date (unix timestamp) fields: Additional fields to return |
| accelo_update_issueB | Update an existing issue. Args: id: Issue ID (required) title: New title description: New description status_id: New status ID (bypasses progressions) class_id: New class ID assignee: New assignee staff ID priority_id: New priority ID date_due: New due date (unix timestamp) resolution_detail: Resolution details fields: Additional fields to return |
| accelo_delete_issueC | Delete an issue. Args: id: Issue ID to delete |
| accelo_list_jobsA | List jobs (projects) from Accelo. Jobs are always 'against' a company (against_type="company", against_id=company_id). Jobs contain milestones (phases) which contain tasks. To find a job's company, the against_id IS the company_id. Use fields="company(),manager()" to expand inline. Args: filters: Filter dict. Keys: id, standing, against_type, against_id, paused, job_type, manager, modified_by, status, rate, date_created/started/due/modified/commenced_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),job_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_jobC | Get a single job (project) by ID. Args: id: Job ID fields: Additional fields to return |
| accelo_count_jobsC | Count jobs matching the given filters. |
| accelo_create_jobC | Create a new job (project). Args: title: Job title (required) against_type: Object type (required) against_id: Object ID (required) manager_id: Staff ID for manager (required) type_id: Job type ID (required) status_id: Initial status ID date_due: Due date (unix timestamp) date_started: Start date (unix timestamp) affiliation_id: Affiliation ID fields: Additional fields to return |
| accelo_update_jobB | Update an existing job. Args: id: Job ID (required) title: New title manager_id: New manager staff ID status_id: New status ID date_due: New due date (unix timestamp) affiliation_id: New affiliation ID fields: Additional fields to return |
| accelo_delete_jobB | Delete a job. Args: id: Job ID to delete |
| accelo_list_tasksA | List tasks from Accelo. Tasks are 'against' a job, milestone, or issue. To find the company:
Args: filters: Filter dict. Keys: id, assignee, manager, task_status, standing, against_type, against_id, custom_id, child_of_job, rate_id, date_created/started/due/completed/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,assignee(),manager()" search: Search over description, title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_taskC | Get a single task by ID. Args: id: Task ID fields: Additional fields to return |
| accelo_count_tasksC | Count tasks matching the given filters. |
| accelo_create_taskC | Create a new task. Args: title: Task title (required) against_type: Object type (required) — e.g. job, milestone, issue against_id: Object ID (required) date_started: Start date as unix timestamp (required) description: Task description assignee_id: Staff ID to assign manager_id: Staff ID for manager date_due: Due date (unix timestamp) priority_id: Priority ID status_id: Initial status ID remaining: Budgeted time remaining in seconds fields: Additional fields to return |
| accelo_update_taskB | Update an existing task. Args: id: Task ID (required) title: New title description: New description assignee_id: New assignee staff ID manager_id: New manager staff ID date_due: New due date (unix timestamp) priority_id: New priority ID remaining: New remaining time in seconds fields: Additional fields to return |
| accelo_progress_task_to_startC | Auto-progress a task's status to "start" (mark it started). Args: id: Task ID |
| accelo_progress_task_to_doneC | Auto-progress a task's status to "done" (mark it complete). Args: id: Task ID |
| accelo_list_contractsA | List contracts (retainers) from Accelo. Contracts are always 'against' a company (against_type="company"). Each contract has billing periods (contract_periods). To find a contract's company: the against_id IS the company_id. Use fields="company()" to expand the company inline. Contract periods link back via contract_id. To resolve a contract_period to its company: get period → contract_id → get contract → against_id. Args: filters: Filter dict. Keys: id, standing, contract_type, manager, billable_affiliation, status, against_type, against_id, date_created/started/expired_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),contract_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_contractC | Get a single contract by ID. Args: id: Contract ID fields: Additional fields to return |
| accelo_count_contractsC | Count contracts matching the given filters. |
| accelo_list_contract_periodsA | List contract periods for a specific contract. Contract periods are billing intervals within a contract (retainer). Each has a budget, allowance type, and rate. To find the company: period → contract_id → get contract → against_id (company_id). Args: contract_id: Contract ID (required) — the parent contract filters: Filter dict. Keys: id, standing, budget_type, allowance_type, rate_type, rate, service_item, duration_type, rollover, contract_budget, date_created/commenced/expires/closed_before/after, order_by_asc/desc (id, date_created, date_commenced, date_expires, date_closed) fields: Additional fields, e.g. "contract_budget(),rate()" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_contract_periodB | Get a single contract period by ID. Args: id: Contract Period ID fields: Additional fields to return |
| accelo_close_contract_periodA | Close a contract period. WARNING: This replicates the actions taken when closing a period via the Web App, including auto-completing linked issues/tickets if the contract is configured for it, and triggering invoicing. Args: id: Contract Period ID to close fields: Additional fields to return |
| accelo_reopen_contract_periodC | Reopen a previously closed contract period. Args: id: Contract Period ID to reopen fields: Additional fields to return |
| accelo_list_prospectsA | List prospects (sales) from Accelo. Prospects link to a company via affiliation_id → get affiliation → company_id. Use fields="affiliation()" to expand the client contact, or filter by company directly with the 'company' filter. Args: filters: Filter dict. Keys: id, standing, weighting, success, affiliation, manager, prospect_type, status, prospect_probability, company, date_created/due/actioned_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),value" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_prospectC | Get a single prospect (sale) by ID. Args: id: Prospect ID fields: Additional fields to return |
| accelo_count_prospectsC | Count prospects matching the given filters. |
| accelo_create_prospectB | Create a new prospect (sale). Args: title: Prospect title (required) affiliation_id: Affiliation ID (required) type_id: Prospect type ID (required) value: Monetary value staff_id: Manager staff ID date_due: Due date (unix timestamp) weighting: Weighting 0-5 status_id: Initial status ID fields: Additional fields to return |
| accelo_update_prospectB | Update an existing prospect. Args: id: Prospect ID (required) title: New title value: New value staff_id: New manager staff ID date_due: New due date (unix timestamp) weighting: New weighting (0-5) progress: New progress (0-100) status_id: New status ID (bypasses progressions) fields: Additional fields to return |
| accelo_delete_prospectC | Delete a prospect. Args: id: Prospect ID to delete |
| accelo_list_staffB | List staff members from Accelo. Args: filters: Filter dict. Keys: id, email, standing, username fields: Additional fields, e.g. "email,title,mobile" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_staffB | Get a single staff member by ID. Args: id: Staff ID fields: Additional fields to return |
| accelo_get_current_staffA | Get the currently authenticated staff member (whoami). Useful for verifying authentication is working. Returns the staff member associated with the current OAuth token. Args: fields: Additional fields to return |
| accelo_count_staffC | Count staff members matching the given filters. |
| accelo_list_staff_membershipsB | List staff group memberships from Accelo. Each membership links a staff member to a group. Args: filters: Filter dict. Keys: id, staff_id, group_id, order_by_asc/desc fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_create_staffA | Create a new staff member (user) on the Accelo deployment. ADMINISTRATIVE WRITE — this provisions a new user account and consumes a
licence seat. Confirm with the user before calling. The Args: username: Login username (required) password: Initial password for the new account (required, secret) firstname: First name (required) surname: Surname (required) email: Email address (required) title: Title, e.g. "Mr", "Ms" phone: Phone number mobile: Mobile number fax: Fax number position: Position in the company fields: Additional fields to return |
| accelo_update_staffA | Update a staff member's descriptive details. ADMINISTRATIVE WRITE — edits another user's record. Only the descriptive fields below are updatable via this endpoint (the API does not expose standing/financial_level/username here). Only non-None fields are sent. Args: id: Staff ID (required) firstname: New first name surname: New surname title: New title email: New email address phone: New phone number mobile: New mobile number fax: New fax number position: New position fields: Additional fields to return |
| accelo_list_invoicesB | List invoices from Accelo. Args: filters: Filter dict. Keys: id, invoice_number, date_raised/due/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "affiliation(),contact(),against_type" search: Search over subject, invoice_number page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_invoiceC | Get a single invoice by ID. Args: id: Invoice ID fields: Additional fields to return |
| accelo_count_invoicesC | Count invoices matching the given filters. |
| accelo_list_invoice_line_itemsA | List invoice line items from Accelo (Beta). Line items are the individual lines on an invoice, each carrying a quantity, rate, tax, total, and a link to its parent invoice, ledger, and tax code. Traverse from an invoice via filters={"invoice_id": }. Args: filters: Filter dict. Keys: id, invoice_id, ledger_id, tax_id, quantity, rate, total, ordering (order/range filters), plus order_by_asc/desc fields: Additional fields, e.g. "line_item_ledger(),line_item_tax()" search: Search over the line item description page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_invoice_line_itemB | Get a single invoice line item by ID (Beta). Args: id: Line item ID fields: Additional fields to return, e.g. "line_item_ledger(),line_item_tax()" |
| accelo_count_invoice_line_itemsC | Count invoice line items matching the given filters (Beta). |
| accelo_list_expensesB | List expenses from Accelo. Args: filters: Filter dict. Keys: id, standing, expense_type, submitter, approver, against_type, against_id, date_incurred_before/after, order_by_asc/desc fields: Additional fields, e.g. "expense_type(),resource()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_expenseC | Get a single expense by ID. Args: id: Expense ID fields: Additional fields to return |
| accelo_count_expensesC | Count expenses matching the given filters. |
| accelo_create_expenseC | Create a new expense. Args: title: Expense title (required) against_type: Object type (required) against_id: Object ID (required) unit_cost: Cost per unit (required) quantity: Quantity (required) type_id: Expense type ID (required) billable: "yes" or "no" reimbursable: "yes" or "no" date_incurred: Date incurred (unix timestamp) fields: Additional fields to return |
| accelo_update_expenseB | Update an existing expense. Args: id: Expense ID (required) title: New title unit_cost: New unit cost quantity: New quantity billable: "yes" or "no" reimbursable: "yes" or "no" fields: Additional fields to return |
| accelo_delete_expenseC | Delete an expense. Args: id: Expense ID to delete |
| accelo_list_requestsC | List requests from Accelo. Args: filters: Filter dict. Keys: id, standing, affiliation, type, request_priority, lead, claimer_id, date_created/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "body,affiliation(),claimer()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_requestB | Get a single request by ID. Args: id: Request ID fields: Additional fields to return |
| accelo_count_requestsC | Count requests matching the given filters. |
| accelo_create_requestC | Create a new request. Args: title: Request title (required) type_id: Request type ID (required) body: Request body affiliation_id: Affiliation ID priority_id: Priority ID source: Source ('email' or null) fields: Additional fields to return |
| accelo_update_requestC | Update an existing request. Args: id: Request ID (required) title: New title body: New body type_id: New type ID standing: New standing (pending, open, converted, closed) claimer_id: Staff ID to claim the request priority_id: New priority ID fields: Additional fields to return |
| accelo_list_request_threadsB | List request threads on the deployment. A request thread groups a request with its activity thread. Returns a "requests" array plus a "linked_objects" array of objects linked to those requests. Args: filters: Filter dict. Keys: standing, request_type_id (the request type_id), interact_from_staff (staff_id), date_created_before/after page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_list_milestonesA | List milestones from Accelo. Milestones are phases within a job. Each milestone has a job_id linking to its parent job. To find the company: get milestone → job_id → get job → against_id (company). Use fields="job()" to expand the parent job inline. Args: filters: Filter dict. Keys: id, standing, ordering, job, parent, manager, rate, object_budget, status, date_modified/created/started/commenced/due/completed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,manager(),job()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_milestoneB | Get a single milestone by ID. Args: id: Milestone ID fields: Additional fields to return |
| accelo_count_milestonesC | Count milestones matching the given filters. |
| accelo_list_timersB | List timers from Accelo (current user's timers only for service apps). Args: filters: Filter dict. Keys: id, staff, status fields: Additional fields, e.g. "staff(),against_title" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_timerC | Get a single timer by ID. Args: id: Timer ID fields: Additional fields to return |
| accelo_create_timerB | Create a new timer. Args: subject: Timer subject (required) against_type: Object type to time against against_id: Object ID to time against seconds: Initial seconds auto_start: Whether to start immediately (stops other timers) fields: Additional fields to return |
| accelo_start_timerC | Start a timer. Args: id: Timer ID fields: Additional fields to return |
| accelo_pause_timerB | Pause a running timer. Args: id: Timer ID fields: Additional fields to return |
| accelo_cancel_timerC | Cancel and delete a timer. Args: id: Timer ID |
| accelo_delete_timerC | Delete a timer. Args: id: Timer ID to delete |
| accelo_list_quotesA | List quotes (proposals) from Accelo. Quotes are proposals typically created against a prospect (sale). They contain service and material line items with pricing. Use fields="manager(),affiliation()" to expand linked objects. Args: filters: Filter dict. Keys: id, standing, affiliation, manager, status, against_type, against_id, created_by, date_created/expiry_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),introduction" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_quoteC | Get a single quote by ID. Args: id: Quote ID fields: Additional fields to return |
| accelo_count_quotesC | Count quotes matching the given filters. |
| accelo_create_quoteB | Create a new quote (proposal). Args: title: Quote title (required) against_type: Object type (required) — typically 'prospect' against_id: Object ID (required) affiliation_id: Affiliation ID for the client contact manager_id: Staff ID for the quote manager date_expiry: Expiry date (unix timestamp) notes: Additional notes introduction: HTML introduction for the published quote conclusion: HTML conclusion for the published quote terms_and_conditions: HTML terms and conditions fields: Additional fields to return |
| accelo_update_quoteB | Update an existing quote. Args: id: Quote ID (required) title: New title affiliation_id: New affiliation ID manager_id: New manager staff ID date_expiry: New expiry date (unix timestamp) notes: New notes introduction: New HTML introduction conclusion: New HTML conclusion terms_and_conditions: New HTML terms client_portal_access: "1" or "0" for portal access fields: Additional fields to return |
| accelo_list_addressesA | List addresses from Accelo. Addresses store location info for companies and contacts. Each address can be postal, physical, or both. Use filters against_type and against_id to find addresses for a specific company or contact. Args: filters: Filter dict. Keys: id, against_type, against_id, physical, postal, country_id, state_id, zipcode, order_by_asc/desc (id, title) fields: Additional fields, e.g. "country(),state(),street1,city" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_addressA | Get a single address by ID. Args: id: Address ID fields: Additional fields to return, e.g. "country(),state()" |
| accelo_count_addressesC | Count addresses matching the given filters. |
| accelo_create_addressB | Create a new address. Args: against_type: Object type (required) — 'company' or 'contact' against_id: Object ID (required) title: Name for the address, e.g. "Head Office" street1: First line of street address street2: Second line of street address city: City name state: State/province name (use if state_id unknown) state_id: State ID (preferred over state name) country: Country name (use if country_id unknown) country_id: Country ID (preferred over country name) zipcode: Postcode/zipcode postal: "yes" or "no" — is this a postal address? physical: "yes" or "no" — is this a physical address? fields: Additional fields to return |
| accelo_update_addressB | Update an existing address. Args: id: Address ID (required) title: New title street1: New street line 1 street2: New street line 2 city: New city state: New state name state_id: New state ID country: New country name country_id: New country ID zipcode: New postcode/zipcode postal: "yes" or "no" physical: "yes" or "no" fields: Additional fields to return |
| accelo_list_object_budgetsB | List object budgets from Accelo. Object budgets track time and money spent against issues, milestones, jobs, and contract periods. Key fields include billable, nonbillable, logged, charged, service_price, material_price, and is_billable. Each budget is linked via against_type/against_id (e.g. against_type='milestone', against_id=15). Args: filters: Filter dict. Keys: id, against_id, against_type, order_by_asc/desc (id) fields: Additional fields, e.g. "service_price_subtotal,material_cost" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_object_budgetA | Get a single object budget by ID. Returns financial tracking data: billable/nonbillable time, charged amounts, service and material costs, and remaining budget. Args: id: Object Budget ID fields: Additional fields to return |
| accelo_count_object_budgetsC | Count object budgets matching the given filters. |
| accelo_list_object_budget_templatesB | List object budget templates from Accelo. Budget templates define reusable budget configurations that can be applied to objects. They contain default values for service rates, material costs, and billing settings. Args: filters: Filter dict. Keys: id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_list_object_budget_materialsB | List materials (line items) from object budgets. Materials represent physical goods, licences, or other non-time cost items tracked against a budget. Each material has a title, quantity, unit cost, and billing status. Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_list_object_budget_servicesB | List services (time-based line items) from object budgets. Services represent billable time items tracked against a budget. Each service has a rate, quantity (time), and billing configuration. Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_create_object_budget_materialB | Create a new material line item on an object budget. Args: budget_id: ID of the object budget to add the material to (required) title: Material title/description (required) quantity: Quantity of the material (required) unit_cost: Cost per unit (required) billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the created material |
| accelo_update_object_budget_materialB | Update an existing material line item on an object budget. Args: material_id: ID of the material to update (required) title: New material title/description quantity: New quantity unit_cost: New cost per unit billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the updated material |
| accelo_list_assetsB | List assets from Accelo. Assets are flexible objects representing any trackable item — computers, licenses, equipment, etc. They are created 'against' a company and can be linked to jobs, issues, prospects, or contracts via asset links. Args: filters: Filter dict. Keys: id, standing, type_id, affiliation_id, manager_id, address_id, against_type, against_id, date_created_before/after, order_by_asc/desc (id, date_created, standing) fields: Additional fields, e.g. "asset_type(),manager(),affiliation()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_assetC | Get a single asset by ID. Args: id: Asset ID fields: Additional fields to return |
| accelo_count_assetsC | Count assets matching the given filters. |
| accelo_update_assetC | Update an existing asset. Args: id: Asset ID (required) title: New title fields: Additional fields to return |
| accelo_list_asset_typesB | List asset types from Accelo. Asset types define the schema for assets — which fields are available, whether they have managers, affiliations, or addresses. Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "object_link_fields" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_asset_typeC | Get a single asset type by ID. Args: id: Asset Type ID fields: Additional fields to return |
| accelo_list_asset_linksB | List asset links (joins between an asset and another object). Returns the asset links and the linked assets. A link joins an asset to an issue, job, prospect, or contract. Args: filters: Filter dict fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_create_asset_linkB | Create an asset link between an asset and another object. Args: asset_id: The asset to link (required) linked_object_id: ID of the object to link the asset to (required) linked_object_type: Object type to link to — one of the supported types for asset links (issue, job, prospect, contract) (required) description: Optional description of the link start_date: Optional link start date (unix timestamp) end_date: Optional link end date (unix timestamp) |
| accelo_delete_asset_linkC | Delete an asset link (does NOT delete the asset itself). Args: link_id: The asset_link_id to delete |
| accelo_list_checklistsA | List checklists from Accelo. Checklists are to-do lists attached to tasks. Each checklist contains items that can be marked complete. Currently only supported against tasks. Args: filters: Filter dict. Keys: id, against_id, against_type, created_by, date_created_before/after, order_by_asc/desc (id, date_created) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_checklistC | Get a single checklist by ID. Args: id: Checklist ID fields: Additional fields to return |
| accelo_count_checklistsC | Count checklists matching the given filters. |
| accelo_create_checklistB | Create a new checklist. Args: against_type: Object type (required) — currently only 'task' is supported against_id: Object ID (required) items: Array of items (required). Each item: {"title": "...", "ordering": 0} fields: Additional fields to return |
| accelo_update_checklistB | Update an existing checklist. Args: id: Checklist ID (required) items: Updated array of items. Each: {"title": "...", "ordering": 0} fields: Additional fields to return |
| accelo_delete_checklistB | Delete a checklist. Args: id: Checklist ID to delete |
| accelo_list_tagsA | List tags from Accelo. Tags are keywords applied to activities, jobs, and other objects to aid categorisation and search. Use the 'against' object filter to find tags on a specific object. Args: filters: Filter dict. Keys: id, name, against (object filter, e.g. {"job": [2]}), order_by_asc/desc (id, name) search: Search over name page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_count_tagsC | Count tags matching the given filters. |
| accelo_create_tagC | Create a new tag. Args: name: Tag name (required) fields: Additional fields to return |
| accelo_list_ratesB | List rates from Accelo. Rates define the hourly rate charged for billable work. They are referenced by jobs, milestones, tasks, contracts, and staff. Key fields: title, charged (hourly rate as decimal), standing, object (comma-separated list of object types the rate applies to). Args: fields: Additional fields, e.g. "charged,object,standing" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_rateC | Get a single rate by ID. Args: id: Rate ID fields: Additional fields to return |
| accelo_count_ratesB | Count all rates on the deployment. |
| accelo_list_webhook_subscriptionsA | List webhook subscriptions for the current user. Returns all webhook subscriptions registered by the authenticated user. Each subscription contains: trigger_url, event_id, content_type, trigger_table, trigger_type, user_deployment, user_id. |
| accelo_list_webhook_subscription_typesA | List available webhook subscription event types. Returns the available events you can subscribe to. Events include: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity. |
| accelo_create_webhook_subscriptionA | Create a webhook subscription. When the event fires, Accelo POSTs a payload to trigger_url containing {id, resource_url}. Headers include X-Accelo-Event and X-Hub-Signature (HMAC hex digest if secret is configured). Args: trigger_url: Callback URL to receive the webhook payload (required) event_id: Event to subscribe to (required). One of: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity content_type: Payload format — 'application/json' or 'application/x-www-form-urlencoded' (default) secret: Optional secret for HMAC signature verification |
| accelo_delete_webhook_subscriptionB | Delete a webhook subscription. Args: id: Subscription ID to delete |
| accelo_list_referralsB | List referrals from Accelo. Referrals link an object to the object it was created from. For example, a job created from a prospect has a referral where referrer_type='prospect' and against_type='job'. Args: filters: Filter dict. Keys: id, against_type, against_id, referrer_type, referrer_id, created_by, updated_by, standing, date_created/updated_before/after, order_by_asc/desc (id, date_created, date_updated) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_referralC | Get a single referral by ID. Args: id: Referral ID fields: Additional fields to return |
| accelo_count_referralsC | Count referrals matching the given filters. |
| accelo_list_segmentationsA | List segmentations (categories) from Accelo. Segmentations organize companies, contacts, and affiliations into categories for management and reporting. Each segmentation has a link_type ('company', 'contact', or 'affiliation') and can be exclusive (single value) or multi-value. Args: filters: Filter dict. Keys: id, link_type, standing, required, exclusive, leaf, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_segmentationC | Get a single segmentation by ID. Args: id: Segmentation ID fields: Additional fields to return |
| accelo_count_segmentationsC | Count segmentations matching the given filters. |
| accelo_list_skillsA | List skills from Accelo. Skills are tags assigned to tasks or staff to match work with appropriate team members. Use the 'against' object filter to find skills on a specific task or staff member. Args: filters: Filter dict. Keys: id, title, against (object filter, e.g. {"task": [24]}), order_by_asc/desc search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_count_skillsC | Count skills matching the given filters. |
| accelo_create_skillC | Create a new skill. Args: title: Skill name (required) fields: Additional fields to return |
| accelo_list_taxesB | List tax codes from Accelo. Tax codes define the tax rates applied to invoices, expenses, and materials. Key fields: title, rate (decimal, e.g. 0.10 for 10%), standing. Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "rate,standing" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_taxC | Get a single tax code by ID. Args: id: Tax ID fields: Additional fields to return |
| accelo_count_taxesC | Count tax codes matching the given filters. |
| accelo_list_ledgersA | List account ledgers from Accelo. Ledgers are accounting codes used for invoicing and financial reporting. They may sync with external systems (Xero, QuickBooks). Key fields: title, code, standing, parent_id, comment. Args: filters: Filter dict. Keys: id, code, parent_id, standing, order_by_asc/desc (id, code, parent_id, standing, title) fields: Additional fields, e.g. "code,comment" search: Search over title, code page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_ledgerC | Get a single ledger by ID. Args: id: Ledger ID fields: Additional fields to return |
| accelo_count_ledgersC | Count ledgers matching the given filters. |
| accelo_list_paymentsA | List payments from Accelo. Payments record money received against invoices. Each payment has a method, receipt, and currency. Use fields="payment_method(),payment_receipt(), payment_currency()" to expand linked objects. Args: filters: Filter dict. Keys: id, currency_id, method_id, receipt_id, created_by_staff_id, against_id, against_type, date_created_before/after, against (object filter, e.g. {"account_invoice": [133]}), order_by_asc/desc (id, amount, date_created, direction) fields: Additional fields, e.g. "payment_method(),payment_receipt()" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_paymentC | Get a single payment by ID. Args: id: Payment ID fields: Additional fields to return |
| accelo_count_paymentsC | Count payments matching the given filters. |
| accelo_list_divisionsB | List divisions from Accelo (Beta). Divisions allow managing contacts, companies, and staff under different details, rates, or identities. Args: filters: Filter dict. Keys: id, title, standing, order_by_asc/desc (id, title, standing, ordering) fields: Additional fields, e.g. "standing,ordering" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_divisionC | Get a single division by ID (Beta). Args: id: Division ID fields: Additional fields to return |
| accelo_count_divisionsC | Count divisions matching the given filters. |
| accelo_list_groupsA | List staff groups from Accelo (Beta). Groups categorize staff for bulk assignments and access controls. Use filter staff_id to find groups a specific staff member belongs to. Args: filters: Filter dict. Keys: id, title, staff_id fields: Additional fields, e.g. "standing,parent_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_groupB | Get a single group by ID (Beta). Args: id: Group ID fields: Additional fields to return |
| accelo_count_groupsC | Count groups matching the given filters. |
| accelo_list_holidaysA | List holidays from Accelo (Beta). Holidays are staff leave/time-off entries imported from calendars or entered manually. Each has a staff_id, date_start, and either date_end or duration_seconds. Args: filters: Filter dict. Keys: id, staff_id, date_start/end_before/after, order_by_asc/desc (id, staff_id, date_start, date_end, title) fields: Additional fields, e.g. "staff(),duration_seconds" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_holidayC | Get a single holiday by ID (Beta). Args: id: Holiday ID fields: Additional fields to return |
| accelo_count_holidaysC | Count holidays matching the given filters. |
| accelo_create_holidayB | Create a new holiday (Beta). Only one of date_end or duration_seconds should be provided. Args: title: Holiday name (required) date_start: Start date as unix timestamp (required) date_end: End date as unix timestamp (provide this OR duration_seconds) duration_seconds: Duration in seconds (provide this OR date_end) staff_id: Staff member ID (defaults to current user) fields: Additional fields to return |
| accelo_update_holidayC | Update an existing holiday (Beta). Args: id: Holiday ID (required) title: New title date_start: New start date date_end: New end date duration_seconds: New duration staff_id: New staff ID fields: Additional fields to return |
| accelo_delete_holidayC | Delete a holiday (Beta). Args: id: Holiday ID to delete |
| accelo_list_contributorsA | List contributors from Accelo. Contributors are third-party contacts involved in client work (jobs, issues, prospects). They link a staff member or affiliation to a work object, and can be auto-CC'd on correspondence. Args: filters: Filter dict. Keys: id, standing, status_id, contributor_type_id, against_type, against_id, object_id, object_type, auto_cc, order_by_asc/desc (id, contributor_type_id, standing, status_id) fields: Additional fields, e.g. "contributor_type(),description" search: Search over description page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_contributorC | Get a single contributor by ID. Args: id: Contributor ID fields: Additional fields to return |
| accelo_count_contributorsC | Count contributors matching the given filters. |
| accelo_list_contributor_typesA | List contributor types from Accelo. Contributor types (e.g. 'Advisor') define whether the type has a status, whether contributors of the type are auto-CC'd, and its default standing. Args: filters: Filter dict. Keys: id, title, default_status_id, default_standing, order_by_asc/desc (ordering) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_contributor_typeC | Get a single contributor type by ID. Args: id: Contributor type ID fields: Additional fields to return |
| accelo_count_contributor_typesC | Count contributor types matching the given filters. |
| accelo_list_signoffsA | List signoffs from Accelo. Signoffs allow clients to approve work and comment on attachments. They are created against jobs or milestones. Standing: 'draft', 'sent', 'approved', or 'declined'. Args: filters: Filter dict. Keys: id, created_by, standing, requires, against_type, against_id, date_created/expires/updated_before/after, order_by_asc/desc (id, date_created, date_expires, date_updated, standing, subject) fields: Additional fields, e.g. "html_body,permissions" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_signoffC | Get a single signoff by ID. Args: id: Signoff ID fields: Additional fields to return |
| accelo_count_signoffsC | Count signoffs matching the given filters. |
| accelo_update_signoffA | Update a signoff's body. Only the Args: id: Signoff ID (required) body: New body content (required) fields: Additional fields to return |
| accelo_redraft_signoffB | Redraft a signoff — return a sent signoff to draft standing. Args: id: Signoff ID |
| accelo_send_signoffA | Send a signoff to its recipients. CLIENT-FACING WRITE — this dispatches an approval request to the signoff's recipients (typically clients). Confirm with the user before calling. Args: id: Signoff ID |
| accelo_create_signoff_recipientB | Add a recipient to a signoff. Args: signoff_id: The signoff to add the recipient to (required) recipient_id: ID of the recipient object (required) recipient_type: Object type of the recipient — "affiliation" or "staff" (required) approver: Whether this recipient can approve the signoff fields: Additional fields to return |
| accelo_update_signoff_recipientA | Update a signoff recipient. A recipient can only be edited while the signoff is in draft; Args: recipient_id: The recipient record's ID (required) approver: Whether the recipient can approve response: The recipient's response fields: Additional fields to return |
| accelo_delete_signoff_recipientC | Delete a signoff recipient. Args: recipient_id: The recipient record's ID |
| accelo_update_signoff_attachmentA | Update a signoff attachment's standing. Only the Args: attachment_id: The attachment's ID (required) standing: New standing — "active" or "inactive" (required) |
| accelo_list_purchasesA | List purchases from Accelo. Purchases track costs incurred when completing jobs, issues, or contracts. Key fields: title, amount, tax, total, date_purchased, owner_id, creator_id, affiliation_id. Args: filters: Filter dict. Keys: id, owner_id, creator_id, affiliation_id, date_purchased_before/after, order_by_asc/desc (id, amount, tax, total) fields: Additional fields, e.g. "amount,tax,total" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_purchaseC | Get a single purchase by ID. Args: id: Purchase ID fields: Additional fields to return |
| accelo_count_purchasesC | Count purchases matching the given filters. |
| accelo_list_time_externalsA | List time externals (imported calendar appointments) from Accelo. Time externals are appointments imported from Google, Exchange, or Outlook calendars. They can be converted to activities for scheduling and timesheets. Args: filters: Filter dict. Keys: id, staff_id, order_by_asc/desc (id, staff_id, date_created, date_modified, date_started, date_ended) fields: Additional fields, e.g. "description,date_started,date_ended" search: Search over title, description page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_time_externalC | Get a single time external by ID. Args: id: Time External ID fields: Additional fields to return |
| accelo_count_time_externalsC | Count time externals matching the given filters. |
| accelo_convert_time_external_to_activityA | Convert a time external (imported calendar appointment) into an activity. Creates a meeting activity against the given object, plus a second activity as a report on the meeting — the process for turning an imported appointment into a workable Accelo timesheet/schedule entry. Args: id: Time External ID to convert (required) engagement_table: The against_type for the new activity — the object type the meeting is created against (e.g. "company", "job", "issue") (required) engagement_id: The against_id — ID of the object to create against (required) |
| accelo_list_profile_fieldsC | List profile fields available for an object type. Args: object_type: The object type — affiliations, companies, contacts, contracts, invoices, issues, jobs, milestones, prospects, staff fields: Additional fields to return |
| accelo_get_profile_valuesC | Get profile field values for a specific object. Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID fields: Additional fields to return |
| accelo_set_profile_valueB | Set a profile field value on an object. Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID profile_field_id: The profile field's ID value: The value to set (type depends on the field: text, integer, date, etc.) |
| accelo_list_extension_fieldsC | List extension fields available for an object type. Args: object_type: The object type — assets, contracts, issues, jobs, prospects fields: Additional fields to return |
| accelo_get_extension_valuesC | Get extension field values for a specific object. Args: object_type: The object type (e.g. "issues", "jobs", "contracts") object_id: The object's ID fields: Additional fields to return |
| accelo_set_extension_valueC | Set an extension field value on an object. Args: object_type: The object type (e.g. "issues", "jobs") object_id: The object's ID extension_field_id: The extension field's ID value: The value to set (use value_int, value_date, value_id for typed fields) |
| accelo_list_progressionsC | List available progressions for an object (possible status transitions). Args: object_type: The object type — tasks, companies, jobs, prospects, issues, milestones, affiliations, contracts, contacts, expenses object_id: The object's ID |
| accelo_run_progressionB | Auto-run a progression to advance an object's status. Use accelo_list_progressions first to find available progression IDs. Args: object_type: The object type object_id: The object's ID progression_id: The progression ID to execute |
| accelo_list_collectionsC | List resource collections for an object. Args: object_type: The object type (e.g. "companies", "issues", "jobs", "contacts") object_id: The object's ID |
| accelo_list_resourcesC | List resources (attachments) from Accelo. Args: filters: Filter dict. Keys: id, mimetype, activity_id, collection_id, date_created_before/after, order_by_asc/desc fields: Additional fields, e.g. "owner_type,owner_id,collection_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_count_resourcesC | Count resources (attachments) matching the given filters. |
| accelo_get_resourceC | Get a single resource (attachment) by ID. Args: id: Resource ID fields: Additional fields to return |
| accelo_download_resource_urlB | Get the download URL for a resource. Returns the URL path to download the resource. The actual download requires the Bearer token as authentication. Args: id: Resource ID |
| accelo_list_enumA | List an object's enumeration values (statuses, types, classes, etc.). Use this to DISCOVER valid IDs before filtering a list endpoint — e.g. call accelo_list_enum("issues", "statuses") to learn the status_id values, then pass one to accelo_list_issues(filters={"status": }). Valid (object, enum_type) combinations: Statuses: companies, contacts, affiliations, jobs, issues, milestones, quotes, contracts, prospects -> enum_type="statuses" Types: jobs, issues, expenses, contracts, contributors, requests, prospects -> enum_type="types" Issues: enum_type in "classes", "priorities", "resolutions" Other: tasks/"priorities", activities/"classes", prospects/"probabilities" Args: object: Object name, e.g. "issues", "jobs", "companies" enum_type: Enumeration kind, e.g. "statuses", "types", "classes", "priorities", "resolutions", "probabilities" filters: Filter dict (most enums support id/title/standing + order_by_*) fields: Additional fields (most enums support _fields) search: Search over title (where supported) page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_get_enumA | Get a single enumeration value by ID (e.g. one issue status). Only some enumerations expose a get-by-id endpoint; if the combination does not, a structured error is returned naming the valid combinations. See accelo_list_enum for the full list of (object, enum_type) pairs. Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" id: The enumeration value's ID fields: Additional fields to return |
| accelo_count_enumA | Count an object's enumeration values matching the given filters. Only some enumerations expose a count endpoint; if the combination does not, a structured error is returned. See accelo_list_enum for valid pairs. Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" filters: Filter dict search: Search over title (where supported) |
| accelo_list_filtersA | List saved filters on the deployment. Does not include filters created by other users that have not been shared. Args: filters: Filter dict. Keys: id, shared, staff (staff_id), object_type, order_by_asc/desc (id, title, shared) fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_list_object_filtersB | List saved filters for a particular object type. Args: object: Object type, e.g. "companies", "issues", "jobs" (one of: activities, affiliations, companies, contracts, expenses, issues, jobs, milestones, prospects, quotes, staff, tasks) filters: Filter dict. Keys: id, shared, staff (staff_id) fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100) |
| accelo_update_filterB | Update a saved filter's title or shared flag. Args: id: Filter ID (required) title: New title shared: "yes" or "no" — whether the filter is shared on the deployment fields: Additional fields to return |
| accelo_run_filterA | Run a saved filter and return the objects it matches. The returned objects are of the filter's own object_type, with their default
fields plus any requested via Args: id: Filter ID (required) fields: Additional fields on the matched objects limit: Max results (this endpoint accepts only _limit, not _page) |
| accelo_describe_objectA | Get field descriptions and examples for an Accelo object type. Returns detailed field-level documentation including types, descriptions, gotchas (e.g. time fields are in seconds), and usage patterns. Call this when you need to interpret response data or understand what fields are available. Supported objects: activities, affiliations, companies, contacts, contracts, prospects, quotes, staff, tasks Args: object_type: The object type to describe (e.g. "activities", "staff") |
| accelo_rate_limit_statusA | Get current API rate limit status. Returns the remaining requests, total limit, and reset time. Accelo allows 5000 requests per hour per deployment. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 219 tools
Most tools are clearly scoped to a resource and action, and the many list/count/get/create/update/delete tools are distinct. Some overlap exists in enumerations and filters, but the descriptions explicitly guide how to distinguish them. A few tools (e.g., accelo_list_enum vs accelo_list_object_filters) require careful reading but are not truly ambiguous.
All tools follow a strict accelo_verb_noun pattern (e.g., accelo_list_companies, accelo_get_task, accelo_create_issue). The prefix is consistent and the verb+noun style is uniform across all 219 tools.
With 219 tools, the surface is extremely large for any single agent to navigate effectively. While each tool may be warranted for the breadth of Accelo's API, the sheer count makes selection and maintenance burdensome, and the toolset feels heavy rather than well-scoped.
The server covers a vast domain with CRUD operations for most objects, plus helpers like progressions, timers, webhooks, and filters. Minor gaps exist (e.g., no contact delete), but overall the surface is remarkably comprehensive for Accelo's model.