Connect an AI agent

engman's MCP server lets an AI assistant you trust read who is in your organization and propose changes that you confirm in engman.

What engman is for

engman keeps the 1:1s, feedback and career plans of the people a tech leader manages: CTOs, heads of department and engineering managers.

A connected agent works for you, with your permissions. It sees only the people you see in engman: you and everyone below you, or everyone if you own the workspace.

An agent reads identifiers only: names, work emails, teams, managers, dates and statuses. It never reads what was said in a 1:1, notes, feedback or any other content.

An agent never changes anything directly. Everything it writes is a proposal that waits for you to confirm it in the web app.

How to connect

Server URL:

https://app.engmanapp.com/mcp

  1. Add that URL to your MCP client, for example as a custom connector. The client sends you to engman to sign in.
  2. Sign in to engman with your password or Google account, and your second factor (authenticator app or passkey). Every engman user has one.
  3. engman shows a consent page with the agent's name and the hosts it comes from. Only allow agents you trust, from hosts you recognise. If you last confirmed your second factor more than 15 minutes ago, engman asks for it again.
  4. Choose Allow. Your client is connected, and the agent can call the tools below.

The workspace owner decides whether agents work at all, under Agent access on the Connected agents page:

For client developers

Tools

engman lists eighteen tools: fourteen reads and four proposals. Read tools are marked read-only. Proposal tools are marked as writes, so your client asks you before it calls one, and nothing they send is saved until you confirm it in engman.

Reads

get_my_context
Who you are, your workspace, the agent access level and the scopes this connection was granted.
get_workspace
The workspace's id and name, your own person and whether you own the workspace.
list_people
The people you see, by name, with each one's team and direct manager.
get_person
One person's name, work email, start date, email language, archived state, team, chain of command and pending invitation.
list_teams
The teams you see, by name, each with its manager.
list_one_on_ones
A person's 1:1s, newest first: date, status, kind, who held them, and how many action items are open and overdue. Never what was said.
get_manager_panel
A manager's Overview: yours, or that of a manager among your people (managerPersonId) exactly as they see it, with the path from you down to them. Each of the manager's direct reports who leads a team, with how many people they have, how many of them have had no 1:1 in that lead's own reminder weeks, the open and overdue action items of their 1:1s, their improvement feedback with no follow-up in those weeks, and their active career plans with how many have had no progress in those weeks; then each of the manager's direct reports by name and team, with the date of their last 1:1 held, since when they have had none once past the manager's reminder weeks, the action items of the manager's 1:1s with them, the manager's feedback about them with no follow-up, and whether the manager's career plan for them is active, stalled since a date, or missing. Never what was said, and never a plan's progress.
list_one_on_one_overview
For each of your people with a regular 1:1: the date of the last one held, the next one planned and how many of their action items are open. Never what was said.
list_feedback
The feedback given to a person, newest first: date, kind (recognition or improvement), status, the manager who owns it and the 1:1 it was given in. Never what was said.
list_timeline
Everything you may see about a person, newest first, 50 at a time: each entry's type (and a feedback entry's kind), date, the manager who owns it, its source, whether you may read its content, whether it is private and who else reads it by name. Never a title or what was written. Pass types to keep only some record types (person_change for the person's changes), and nextCursor back as cursor for the next page.
get_ladder
The workspace's career ladder: each level's name, track (shared, individual contributor or manager), position and whether it is switched on, and each discipline's name. Never what a level expects.
list_career_plans
A person's career plans, newest first: type, status, target discipline and level, dates, progress, when progress last changed and the manager who owns each. Never an objective or key result.
list_connected_agents
The agents connected to engman: client, who connected it, when, last use, and reads and proposals over the last 30 days.
get_proposal_status
Whether your proposals were confirmed or discarded, and the id of what each confirmed one became.

Proposals

propose_person
Propose 1 to 100 people to add, each by full name, with an optional work email, start date, email language, and the team or manager they go under in plain words.
propose_one_on_one
Propose a 1:1 with one of your people: planned with topics, or held (dated today or earlier) with the person's answers, notes and action items.
propose_feedback
Propose feedback you gave one of your people, dated today or earlier: recognition or a point to improve, what you said, optionally the situation, behavior, impact, the change you expect and a 1:1 you held with them. Only you can mark it private, when you confirm it.
propose_career_plan
Propose a whole career plan for one of your direct reports: traditional, toward their next level, or liquid, toward a discipline and level from get_ladder; an optional target date; objectives with key results (type, title, an http(s) link and a due date, each optional but the type and title); and whether to pre-fill it from the target level when you confirm. It is never private, and you can confirm it only once any active plan you own for them is closed.

Proposals and the confirmation queue

When an agent calls a proposal tool, engman saves the proposals as one batch and answers with a link to the batch and a link to each proposal.

How to disconnect

Open Connected agents in engman and choose Disconnect next to the agent. It is cut off at its next call and has to be connected again to come back. What it proposed stays in your queue.

Everyone sees and disconnects their own agents; the workspace owner sees and disconnects every agent in the workspace.

Troubleshooting

A failed tool call comes back as an error result with a code and a message.

401 Unauthorized
The access token is missing, invalid, expired or revoked, or the agent was disconnected. Clients renew tokens on their own; if the error stays, remove the connector and connect it again.
AGENT_ACCESS_OFF
The workspace owner has switched agents off. Ask them to set Agent access back to Actions on the Connected agents page. The consent page shows the same message.
429 Too Many Requests
Each connection makes up to 60 requests a minute, counting every request, the MCP handshake included, and MCP and A2A calls together. Wait the seconds the Retry-After header gives, then try again.
NOT_FOUND ("Not found")
The id does not exist, or you can no longer see it, for example after a person moves outside your part of the organization. In the demo workspace, which is reset periodically, every reset gives records new ids. Call list_people or list_teams again to get current ids.
INVALID_INPUT
The input does not match the tool's schema. The error lists each problem with its path; for propose_person the path names the row.
Second factor errors on the consent page
Set up an authenticator app or a passkey in engman first, then connect again. If engman asks you to confirm it is you, enter your current code or use your passkey.

Help and legal

Write to hello@engmanapp.com.

Using an agent with engman is covered by the Terms of Service (español), the Privacy Policy (español) and the Data Processing Agreement (español).