← Plugin catalog
Productivity

Ferris

Ferris AI v1.1.0

Your delivery project manager

Full description ↓

View on ChatGPT ↗

Save this plugin to Following and return to review observed changes. Follow up to 10 plugins free.

Description

From the marketplace listing

Ferris acts as your project manager for delivery work. It keeps client projects on track by managing tasks, changes, and meetings, so your team spends less time on status updates. With Ferris connected, you can: - See what changed for you: new assignments, comments, mentions, client questions, unblocked work, and meeting action items. - Keep the plan current: create and update tasks, issues, epics, and requirements, assign work, comment, and close tasks. - Get answers from project knowledge: search meeting transcripts, documents, and notes, with the passages each answer comes from. - Look up client accounts and contacts, see who is on a project, upload documents, and send Ferris to a meeting to capture the transcript. Ferris is for delivery teams at services firms. It needs a Ferris account, and it acts as you: it can only see and change the projects you can access in Ferris.

Language: English · Automatically detected from descriptions.

Competitor profile

From the developer’s listing and package; capabilities are not independently tested. Package observed Nov 3, 2026.

Declared capabilities

  • Read
  • Write

Declared limitations

  • Request outside Ferris's scope.
  • Project the user cannot access.
  • Destructive bulk change without a clear target.

Review scenarios; not an exhaustive list.

Cost & access

Pricing and account requirements have not been established from the available package declarations. Unknown pricing does not mean free access.

Starter prompt

What's new for me in Ferris this week?

View package source →

Keywords

Files & skills

File archives

Plugin package8 files · 10 KBBrowse files →
Skill instructions
ferris-project-tools11.1 KB

View saved version →

---
name: ferris-project-tools
description: Work with Ferris projects, tasks, issues, epics, requirements, documents, meetings, and client contacts, and search project or Ferris product knowledge. Use when working with client projects, tracking tasks, reviewing documents, searching project context, or answering how Ferris itself works.
---

# Ferris Project Tools

Use the Ferris MCP tools to find what changed, search project knowledge, and manage tasks and documents. Every tool runs as the signed-in Ferris user and only reaches projects that user can access.

## When to Use

- Finding what changed for the user recently, or what to work on next (`list_my_recent_updates`)
- Searching project knowledge for meetings, decisions, documents, and notes
- Answering how Ferris itself works (Inbox, Tasks, Chat, client portal, magic links, meetings, knowledge, sync, workflows, agents, integrations) with `search_software_context` and bank `ferris-documentation`
- Looking up third-party platform docs (Qualtrics, EngineHire, and others) attached to a project
- Creating, updating, or tracking tasks, issues, epics, and requirements
- Browsing project documents and their summaries
- Looking up project members, contacts, and actors for task assignment

## Key Workflow Pattern

For "what's new" or "what should I do next" questions, start with `list_my_recent_updates`. It works across all of the user's projects and needs no ids.

Most other tools need a `project_id`. Get it from `list_projects` (optionally with `name_filter`), then pass it to the other calls.

To pick the right search tool:

- Client engagement knowledge (meetings, decisions, SOW, people, project documents) → `search_project_context`
- How Ferris itself works → `search_software_context` with `bank: "ferris-documentation"`
- How a connected platform works (Qualtrics, EngineHire, etc.) → `search_software_context` with that bank's name

Do not use `search_software_context` for what happened on an engagement. Do not use `search_project_context` for Ferris product how-to.

## Rules the server enforces

- A tool refuses inputs it does not list. Send only the inputs in the tables below.
- Ids are UUIDs. A task number like `97` is not a `task_id`; get the id from `list_tasks` or `search_tasks`.
- List tools page with `limit` and `offset`. When a response has `has_more: true`, call again with a higher `offset`.
- Task and epic `assignees` are objects with `actor_id` (from `list_project_actors`) and a RACI `raci_role`: `responsible`, `accountable`, `consulted`, or `informed`. Sending `assignees` replaces the whole set.

Task statuses: `backlog`, `pending`, `in_progress`, `review`, `blocked`, `completed`, `cancelled`. Priorities: `critical`, `high`, `medium`, `low`.

## Search notes

`search_project_context` searches all project knowledge: meetings, documents, and notes. Use `document_ids` from `list_documents` to search only those documents.

`search_software_context` searches a software bank attached to the project:

- `bank: "ferris-documentation"`: Ferris product how-to
- Other banks (`qualtrics`, `enginehire`, ...): third-party platform docs enabled on the project

If the bank is not enabled on the project, the tool returns the banks that are. Ask complete questions, not keywords. If a Ferris how-to result is an overview page, run one follow-up query for the related topic.

Use Ferris how-to facts in your answer without citing them, and do not mention the bank name. Third-party banks may include a `source_url`, which you can cite.

## Tool Reference

### Your updates

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_my_recent_updates` | -- | `days`, `project_id`, `limit` |

### Organizations and projects

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_organizations` | -- | -- |
| `list_projects` | -- | `name_filter`, `limit`, `offset` |
| `get_project` | `project_id` | -- |
| `update_project` | `project_id` | `name`, `description`, `language` |

### Project team

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_project_members` | `project_id` | -- |
| `list_project_actors` | `project_id` | `actor_type` |
| `list_project_contacts` | `project_id` | -- |
| `add_project_member` | `project_id`, `user_id` | `member_subtype`, `is_primary` |
| `remove_project_member` | `project_id`, `user_id` | -- |
| `add_project_contact` | `project_id`, `account_contact_id` | `role`, `is_primary` |
| `update_project_contact` | `project_id`, `account_contact_id` | `role`, `is_primary` |
| `remove_project_contact` | `project_id`, `account_contact_id` | -- |

### Tasks and issues

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_tasks` | `project_id` | `kind`, `status`, `epic_id`, `assigned_actor_id`, `mentioned_actor_id`, `limit`, `offset` |
| `search_tasks` | `project_id`, `query` | `status`, `epic_id`, `priority`, `assigned_actor_id`, `limit`, `offset` |
| `get_task` | `project_id`, `task_id` | -- |
| `create_task` | `project_id`, `title` | `status`, `description`, `priority`, `epic_id`, `assignees`, `estimated_days`, `due_date`, `start_date`, `portal_task_state`, `kind` |
| `update_task` | `project_id`, `task_id` | `title`, `description`, `status`, `priority`, `epic_id`, `assignee_ids`, `assignees`, `estimated_days`, `due_date`, `start_date`, `resolution`, `portal_task_state` |
| `cancel_task` | `project_id`, `task_id` | -- |
| `list_issues` | `project_id` | `status`, `limit`, `offset` |
| `get_issue` | `project_id`, `issue_id` | -- |
| `list_task_attachments` | `project_id`, `task_id` | -- |
| `get_attachment_download_url` | `project_id`, `task_id`, `attachment_id` | `expires_in_minutes` |

### Task comments

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_task_comments` | `project_id`, `task_id` | `limit`, `offset` |
| `create_task_comment` | `project_id`, `task_id`, `body` | `parent_comment_id`, `mention_actor_ids` |
| `update_task_comment` | `project_id`, `comment_id`, `body` | -- |
| `delete_task_comment` | `project_id`, `comment_id` | -- |

### Epics and requirements

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_epics` | `project_id` | `status`, `requirement_id`, `limit`, `offset` |
| `get_epic` | `project_id`, `epic_id` | -- |
| `create_epic` | `project_id`, `title` | `status`, `description`, `priority`, `requirement_ids`, `start_date`, `due_date`, `assignees` |
| `update_epic` | `project_id`, `epic_id` | `title`, `description`, `status`, `priority`, `requirement_ids`, `start_date`, `due_date`, `assignees` |
| `cancel_epic` | `project_id`, `epic_id` | -- |
| `list_requirements` | `project_id` | `status`, `uncovered_only`, `limit`, `offset` |
| `bulk_create_requirements` | `project_id`, `items` | -- |
| `update_requirement` | `project_id`, `requirement_id` | `title`, `description`, `requirement_type`, `status`, `acceptance_criteria`, `source`, `sort_order`, `assignees` |
| `delete_requirement` | `project_id`, `requirement_id` | -- |

### Documents and search

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_documents` | `project_id` | `scope`, `document_type`, `status`, `since`, `until`, `query`, `limit`, `offset` |
| `get_document` | `document_id` | -- |
| `get_document_summary` | `project_id`, `document_id` | -- |
| `upload_document` | `filename`, `content_base64` | `project_id`, `organization_id` |
| `list_generated_artifacts` | `project_id` | `since`, `until`, `format`, `source`, `limit`, `offset` |
| `get_artifact_download_url` | `project_id`, `artifact_id` | `expires_in_minutes` |
| `search_project_context` | `project_id`, `query` | `document_ids`, `limit` |
| `search_software_context` | `project_id`, `query`, `bank` | `limit` |

### Meetings

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `add_ferris_to_meeting` | `title`, `meeting_url` | `start_time`, `transcript_language`, `project_id`, `organization_id` |

### Client accounts and contacts

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_accounts` | `organization_id` | `limit`, `offset` |
| `get_account` | `account_id` | -- |
| `create_account` | `organization_id`, `name` | `description`, `website`, `industry` |
| `update_account` | `account_id` | `name`, `description`, `website`, `industry` |
| `list_account_contacts` | `account_id` | `limit`, `offset` |
| `get_account_contact` | `account_contact_id` | -- |
| `create_account_contact` | `account_id`, `first_name`, `last_name` | `email`, `phone`, `title`, `is_primary`, `project_id`, `project_role` |
| `update_account_contact` | `account_contact_id` | `first_name`, `last_name`, `email`, `phone`, `title`, `is_primary` |

### Organization members and labels

| Tool | Required | Optional |
| ---- | -------- | -------- |
| `list_org_members` | `organization_id` | `limit`, `offset` |
| `update_org_member` | `organization_id`, `user_id` | `role`, `title_id` |
| `invite_org_member` | `organization_id`, `email` | `role`, `title_id`, `project_id` |
| `list_org_invitations` | `organization_id` | `limit`, `offset` |
| `revoke_org_invitation` | `invitation_id` | -- |
| `list_org_labels` | `organization_id` | `type` |
| `create_org_label` | `organization_id`, `type`, `name` | `description`, `color` |
| `update_org_label` | `label_id` | `name`, `description`, `color`, `sort_order` |
| `archive_org_label` | `label_id` | -- |

## Common Workflows

### What's new for me

```json
{ "tool": "list_my_recent_updates", "arguments": { "days": 7 } }
```

Each update has a `type` (`assigned`, `unblocked`, `updated`, `comment`, `mention`, `client_question`, `meeting_action_item`), a date, the project and task, a link, and a short reason.

### Find and search a project's knowledge

```json
// 1. Find the project
{ "tool": "list_projects", "arguments": { "name_filter": "Acme" } }

// 2. Search its knowledge
{ "tool": "search_project_context", "arguments": {
  "project_id": "<project_id>",
  "query": "What were the key decisions from the kickoff meeting?"
} }
```

### Look up how Ferris itself works

```json
{ "tool": "search_software_context", "arguments": {
  "project_id": "<project_id>",
  "query": "How do magic links work for the client portal?",
  "bank": "ferris-documentation"
} }
```

### Create a task from discovered context

```json
// 1. Search for context
{ "tool": "search_project_context", "arguments": {
  "project_id": "<project_id>",
  "query": "action items from last week"
} }

// 2. Find who to assign
{ "tool": "list_project_actors", "arguments": { "project_id": "<project_id>" } }

// 3. Create the task
{ "tool": "create_task", "arguments": {
  "project_id": "<project_id>",
  "title": "Follow up on API integration timeline",
  "priority": "high",
  "due_date": "2026-08-15",
  "assignees": [{ "actor_id": "<actor_id>", "raci_role": "responsible" }]
} }
```

### Review a document

```json
// 1. List project documents
{ "tool": "list_documents", "arguments": { "project_id": "<project_id>" } }

// 2. Get the summary
{ "tool": "get_document_summary", "arguments": {
  "project_id": "<project_id>",
  "document_id": "<document_id>"
} }

// 3. Search inside it for details
{ "tool": "search_project_context", "arguments": {
  "project_id": "<project_id>",
  "query": "What does the SOW say about payment terms?",
  "document_ids": ["<document_id>"]
} }
```
whats-next1.93 KB

View saved version →

---
name: whats-next
description: Look at what changed for the user in Ferris over the last few days and propose concrete next tasks. Use when the user asks what's new, what changed, what needs their attention, or what to work on next in Ferris.
---

# What's next in Ferris

Turn the user's recent Ferris activity into a short, ordered list of next actions.

## Steps

1. Call `list_my_recent_updates` with `days: 7`. If the user names a project, first get its id from `list_projects` and pass it as `project_id`. If the user asks about a shorter or longer period, set `days` from 1 to 14.
2. If the response has `has_more: true`, call again with a higher `limit` (up to 100). If it has `projects_skipped`, tell the user that some projects were left out, and offer to look at one project at a time.
3. Read the updates and decide what needs the user. Put them in this order:
   - `client_question`: a client is waiting for an answer.
   - `mention`: someone asked the user something.
   - `unblocked`: work the user can start now.
   - `assigned` and `meeting_action_item`: new work for the user.
   - `comment` and `updated`: changes to the user's tasks to review.
4. For the most important items, call `get_task` or `list_task_comments` when the reason alone does not say what to do.
5. Answer with three to five next actions. For each one, give:
   - the action, as one short sentence that starts with a verb ("Reply to Dana about the go-live date")
   - the project and task, with the task's link
   - why it matters now, in a few words
6. End with one line that lists the updates you did not include, grouped by type, so the user knows nothing was hidden.

## Rules

- Do not create, change, or comment on anything unless the user asks. Offer instead: "Want me to draft the reply to Dana?"
- If there are no updates, say so in one line and offer to look further back with a larger `days`.
- Use the dates in the updates. Say "yesterday" or "on Monday", not raw timestamps.
Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
Ferris AI
Keywords
See keywords
Review scenarios
5 positive · 3 negativeScenario counts, not test results.

Declared capabilities

  • Read
  • Write

Package observed Nov 3, 2026.

Technical details
First seen
Nov 3, 2026 · 00:00 UTC
Last seen
Nov 3, 2026 · 18:00 UTC
Collection status
Collected

plugin_asdk_app_6ad2a422bea48191b19fec0a7a2cae96

Download plugin data (JSON)