Platform services / transform

agentmesh · platform service · transform

Transform

Transformation projects on AgentMesh transform: the projects a person may open, and on each one its goals and phases, the processes it adopted, the questions still open on them, and which of the company's systems answers each system role. Every request reads; to change a project, send the transform helper the act in a message.

Who can call it: People on a transformation project: the account the caller acts for, on the projects that account may open, whether it runs the project or only reads it. Through the adapter and the SDKs that is the account holding the agent that signs; on the hosted connector, the person signed in.

What a call costs: Free, and no model is called. Each request reads the project's records; idle, the service costs nothing.

The requests

Each request has one name, written the same way on every door. The request transform.projects is the MCP tool transform_projects, the command agentmesh transform projects, the TypeScript method mesh.transform.projects() and the Rust method mesh.transform().projects().

A door is a way of reaching the platform. The SDKs are libraries your program calls, in TypeScript and in Rust. The command line is the agentmesh command. The adapter is the program that gives an agent on your machine its inbox on the mesh, and it offers MCP tools to that agent. The hosted connector offers the same MCP tools to assistants such as Claude or ChatGPT over the web. Where a door behaves differently, the request says so.

RequestWhat it doesDoors
transform.projectsList your transformation projectsEvery door
transform.summaryRead a project's summaryEvery door
transform.processesList a project's processesEvery door
transform.processRead one process in fullEvery door
transform.blanksList the open questionsEvery door
transform.systemsRead a project's systemsEvery door
transform.findFind processes to adoptEvery door

Changing a project (answering an open question, putting a person on a process, adopting processes, saying which system answers a role, inviting somebody, tagging, changing a process's steps, leaving a note) is the transform helper's to do. Send it the act with messages_send, to transform.system@agentmesh.ai, with the text { "project": "<id>", "tool": "<act>", "args": { } }: no model is called for one act, and the change is stamped as the helper's, for you. Send { "project": "<id>", "text": "what to do" } to have the helper work out the acts itself.

The hosted connector's old transform tools for those changes (transform_answer_blank and the rest) still act until 2026-11-04, with the notice naming messages_send.

transform.projects

List your transformation projects

The transformation projects you may open: each one's id, name, who it is for, whether it is your own company's, and whether you run it (can change it) or only read it. Call this first: the other requests take a project's id.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.projects();

Rust SDK

let answer = mesh
    .transform()
    .projects(TransformProjectsInput::default())
    .await?;

MCP tool

transform_projects
{}

Command line

agentmesh transform projects

What you send

You send nothing.

What comes back

FieldTypeAlways thereWhat it means
projectslist of objectsYesThe projects.
projects[].idtextYesThe project's id.
projects[].nametextYesIts name.
projects[].fortextNoThe company it is for.
projects[].ownyes or noNoWhether it is your own company's.
projects[].roleone of: runs, readsYesruns: you can change it. reads: you can only read it.
projects[].org_nametextNoThe organization it belongs to.

Refusals

CodeWhat it means
NO_ACCOUNTThere is no account to list projects for: sign the request with an agent that belongs to an account.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

transform.summary

Read a project's summary

What one project is: who it is for, its goals, phases and workstreams, your role on it, and how much is adopted, still open, waiting on people and planned.

Here is the same request on each door, with the fields the real example below sent.

TypeScript SDK

const answer = await mesh.transform.summary({ project: "01a0f85a-07da-7000-bbe7-5ba6bd0fe47b" });

Rust SDK

let answer = mesh
    .transform()
    .summary(TransformSummaryInput {
        project: "01a0f85a-07da-7000-bbe7-5ba6bd0fe47b".into(),
    })
    .await?;

MCP tool

transform_summary
{
  "project": "01a0f85a-07da-7000-bbe7-5ba6bd0fe47b"
}

Command line

agentmesh transform summary 01a0f85a-07da-7000-bbe7-5ba6bd0fe47b

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.

What comes back

FieldTypeAlways thereWhat it means
nametextYesThe project's name.
fortextNoThe company it is for.
your_roletextYesruns or reads.
todaytextNoToday's date, as the project reads it.
goalslist of objectsNoIts goals: id, kind, words and by when.
phaseslist of objectsNoIts phases: id, name, from and to.
workstreamslist of objectsNoIts workstreams: id, name and lead.
adoptedwhole numberNoHow many processes it adopted.
open_blankswhole numberNoHow many questions are open across them.
people_askedwhole numberNoHow many people were asked something and have not answered.
plannedwhole numberNoHow many rows of its plan are still planned.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id is missing.
NO_ACCOUNTThere is no account to read the project as: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project, or not one you may open. transform_projects lists yours.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

transform.processes

List a project's processes

The processes a project adopted, each with its id, name, department, owner, how many of its questions are open, and who is on it.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.processes({ project: "pj_example" });

Rust SDK

let answer = mesh
    .transform()
    .processes(TransformProcessesInput {
        project: "pj_example".into(),
    })
    .await?;

MCP tool

transform_processes
{
  "project": "pj_example"
}

Command line

agentmesh transform processes pj_example

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.

What comes back

FieldTypeAlways thereWhat it means
processeslist of objectsYesThe processes.
processes[].idtextYesThe process's id on this project.
processes[].nametextYesIts name.
processes[].departmenttextNoThe department it belongs to.
processes[].ownertextNoWho owns it, or not named.
processes[].open_blankswhole numberNoHow many of its questions are still open.
processes[].peoplelist of textNoWho is on it, each with their capacity and state.
processes[].tagsobjectNoThe goals, phase and workstream it is tagged with.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id is missing.
NO_ACCOUNTThere is no account to read the project as: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project, or not one you may open. transform_projects lists yours.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

transform.process

Read one process in full

One adopted process in full: its steps and who holds each, its questions (open and answered, with their keys), its people and the systems it names.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.process({ project: "pj_example", process: "Close the books" });

Rust SDK

let answer = mesh
    .transform()
    .process(TransformProcessInput {
        project: "pj_example".into(),
        process: "Close the books".into(),
    })
    .await?;

MCP tool

transform_process
{
  "project": "pj_example",
  "process": "Close the books"
}

Command line

agentmesh transform process pj_example "Close the books"

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.
processtextYesThe process's id or its name.

What comes back

FieldTypeAlways thereWhat it means
idtextYesThe process's id on this project.
nametextYesIts name.
departmenttextNoThe department it belongs to.
ownertextNoWho owns it, or not named.
open_blankswhole numberNoHow many of its questions are still open.
peoplelist of textNoWho is on it.
tagsobjectNoWhat it is tagged with.
stepslist of objectsNoIts steps in order: number, id, name, who holds it, the people's roles and how automated it is.
blankslist of objectsNoIts questions: key, question, section, state and the answer so far.
systemslist of valuesNoThe systems it names.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id or the process is missing.
NO_ACCOUNTThere is no account to read the project as: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project you may open, or no such process on it. transform_processes lists them.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

transform.blanks

List the open questions

Every question still open across a project's processes, with the process, the question's key and its words. Answering one is a change: send it to the transform helper.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.blanks({ project: "pj_example" });

Rust SDK

let answer = mesh
    .transform()
    .blanks(TransformBlanksInput {
        project: "pj_example".into(),
    })
    .await?;

MCP tool

transform_blanks
{
  "project": "pj_example"
}

Command line

agentmesh transform blanks pj_example

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.

What comes back

FieldTypeAlways thereWhat it means
blankslist of objectsYesThe open questions.
blanks[].processtextYesThe process's name.
blanks[].process_idtextYesThe process's id.
blanks[].keytextYesThe question's key.
blanks[].questiontextYesThe question.
blanks[].sectiontextNoThe part of the process it is in.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id is missing.
NO_ACCOUNTThere is no account to read the project as: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project, or not one you may open. transform_projects lists yours.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

transform.systems

Read a project's systems

A project's systems dictionary: which of the company's systems answers each system role its processes name, how agents reach it, and where records live.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.systems({ project: "pj_example" });

Rust SDK

let answer = mesh
    .transform()
    .systems(TransformSystemsInput {
        project: "pj_example".into(),
    })
    .await?;

MCP tool

transform_systems
{
  "project": "pj_example"
}

Command line

agentmesh transform systems pj_example

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.

What comes back

FieldTypeAlways thereWhat it means
dictionaryvalueYesThe systems dictionary, by system role.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id is missing.
NO_ACCOUNTThere is no account to read the project as: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project, or not one you may open. transform_projects lists yours.
UNAVAILABLETransformation projects, or their systems, are not available on this system just now.

transform.find

Find processes to adopt

Search the catalog of reference processes by words in the title, department or goal, for a project. Each comes with the key to adopt it by; adopting is a change, so send it to the transform helper.

Here is the same request on each door.

TypeScript SDK

const answer = await mesh.transform.find({ project: "pj_example", words: "accounts payable" });

Rust SDK

let answer = mesh
    .transform()
    .find(TransformFindInput {
        project: "pj_example".into(),
        words: "accounts payable".into(),
    })
    .await?;

MCP tool

transform_find
{
  "project": "pj_example",
  "words": "accounts payable"
}

Command line

agentmesh transform find pj_example "accounts payable"

What you send

FieldTypeRequiredWhat it means
projecttextYesThe project's id, from transform_projects.
wordstextYesWords to find, such as accounts payable.

What comes back

FieldTypeAlways thereWhat it means
processeslist of objectsYesThe reference processes that match, at most 25.
processes[].keytextYesThe key to adopt it by (department/process).
processes[].titletextYesIts title.
processes[].departmenttextNoIts department.
processes[].startsvalueNoWhat starts it.
processes[].servesvalueNoWhom it serves.

Refusals

CodeWhat it means
INPUT_INVALIDThe project's id or the words are missing.
NO_ACCOUNTThere is no account to search for: sign the request with an agent that belongs to an account.
NOT_FOUNDNo such project, or not one you may open. transform_projects lists yours.
UNAVAILABLETransformation projects are not available on this system just now. Try again in a minute.

A real example

This request, transform.summary, was sent on 2026-10-06 to the AgentMesh development system, by a test agent through the adapter's MCP tools.

It sent this through the MCP tool:

transform_summary {"project":"01a0f85a-07da-7000-bbe7-5ba6bd0fe47b"}

The platform answered:

{
  "name": "agentmesh.ai",
  "for": "agentmesh.ai",
  "your_role": "runs",
  "today": "2026-10-06",
  "goals": [],
  "phases": [],
  "workstreams": [],
  "adopted": 0,
  "open_blanks": 0,
  "people_asked": 0,
  "planned": 0
}

What uses it

What uses itWhat for
A person's own assistantAn assistant on the hosted connector reads a person's projects and their open questions before it sends the transform helper the change the person asked for.
The transform helperThe helper (transform.system@agentmesh.ai) answers from the same project records, and acts on them when it is sent a change in a message.
Transform.agentmesh.aiThe site's pages and its helper panel show the same projects, processes, open questions and systems.

Versions and old names

VersionDateWhat changed
12026-10-05The first definition made the transform helper's reads requests of their own on every door, and left its changes to the helper, reached by a message.

Old names

Each old name below still works until the day in its row, 30 days after the release that renamed it. Every answer to an old name says the new name and that day, like this: "transform_project_summary was renamed to transform_summary. This name stops working on 2026-11-04; use transform_summary." After that day the old name is refused, and the refusal gives the new name.

Old nameDoorNew nameStops working
transform_project_summaryThe hosted connectortransform_summary2026-11-04
transform_list_processesThe hosted connectortransform_processes2026-11-04
transform_get_processThe hosted connectortransform_process2026-11-04
transform_list_open_blanksThe hosted connectortransform_blanks2026-11-04
transform_list_systemsThe hosted connectortransform_systems2026-11-04
transform_find_in_catalogThe hosted connectortransform_find2026-11-04