LotsTeam
Collect feature requests and support messages, turn them into tasks and publish what shipped.
Hosted MCP Server
npx add-mcp 'https://api.lots.team/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Ask your agent, for example.
Once LotsTeam is connected, plain requests like these work.
- “What are the five most-voted open requests this month?”
- “Create a task for the CSV export request and link it.”
- “Draft a changelog entry for everything shipped this week.”
Connect in two minutes.
Claude
Settings → Connectors → Add custom connector. Paste the URL, connect, and sign in with your Lots account.
ChatGPT
Settings → Apps & Connectors → Advanced → turn on Developer mode, then Create a connector with the URL and sign in.
Claude Code
claude mcp add --transport http lots-team https://api.lots.team/mcp
Codex
codex mcp add lots-team --url https://api.lots.team/mcp
Cursor, Windsurf and others
{
"mcpServers": {
"lots-team": {
"url": "https://api.lots.team/mcp"
}
}
}
Cloud agents without MCP
Give the agent https://api.lots.team/docs.md and an API key from lotstech.com/api. It calls the REST API with Authorization: Bearer <key>.
Every server uses OAuth: your agent acts as you, inside your own roles and workspaces. You can disconnect it at any time from the app.
39 tools, also REST endpoints.
Each tool is available over MCP and as a REST endpoint under https://api.lots.team/api/v1/lotsteam.
Add Project Domain
POST /projects/:id/domain
Connect a custom domain such as support.example.com to a project's public portal. Returns the DNS records the person must add (a DNS-only CNAME); give them the records, then call verify_project_domain once they have added them. Replaces any domain the project already has.
Create Changelog
POST /changelog
Create a changelog draft in a project.
Create Post
Log a post on a project, such as a request heard on a sales call or in an email. Send project_id, title, description, and category (feature, bug, improvement, question, or other). Add email and user_name when you know who asked.
Create Post Comment
Add a comment to a post.
Create Project
POST /projects
Create a project: one product with its own feedback, tasks, support inbox, changelog and public portal. A project is what LotsTeam bills: covered by the owner's plan, otherwise paid from credits per project per month. Confirm with the person before creating one, and check get_funding_status if they may need funding. Send organization_id and name; the portal address is derived from the name unless you pass slug. Pass is_internal true for a project only the team should see (no public portal or widget).
Create Task
POST /tasks
Create a task on a project. Status is todo, in-progress, or done.
Create Task Comment
Add a comment to a task.
Delete Changelog
DELETE /changelog/:id
Delete an unpublished changelog draft by changelog_id. Owners and admins only. A published entry is refused: unpublish it first with update_changelog (is_published false), then delete it. Confirm with the person before deleting; it cannot be undone.
Delete Post Comment
Delete one of your own comments on a post. Ask the person first; it cannot be undone.
Delete Task Comment
Delete one of your own comments on a task. Ask the person first; it cannot be undone.
Get Changelog
GET /changelog/:id
Read one changelog entry by changelog_id.
Get Contact Thread
GET /contact/:id/thread
Read a support message and its replies before you draft a response.
Get Funding Status
Check subscription coverage, credit funding and live rates. If funding is needed, offer subscription or credits and give the owner the returned settings_url. This tool never enables credit billing.
Get Post
Read one post by post_id.
Get Project
GET /projects/:id
Read one project by project_id.
Get Task
GET /tasks/:id
Read one task by task_id.
Link Post To Task
Link a post to a task so the board shows which request the work came from. A task can carry many posts; linking again is a no-op. Everyone whose post is linked can be emailed when the changelog entry for the task is published.
List Changelog
GET /changelog
List changelog entries for a project or organization.
List Contact Messages
GET /contact
List support messages for a project.
List Linked Posts
List the posts linked to a task.
List Organization Members
GET /organizations/:id/members
List people in an organization, including their role. Use a member user id when assigning a task.
List Organizations
GET /organizations
List the organizations this account belongs to.
List Posts
List posts for a project or organization. A post is a user request, bug, or idea from the widget, the public portal, or the team. Pass project_id or organization_id.
List Projects
GET /projects
List projects in an organization. Pass organization_id from list_organizations.
List Tasks
GET /tasks
List tasks for a project. Optional filters include status, assignee_id, and priority.
Merge Posts
POST /feedback/:id/merge
Merge duplicate posts into one. post_id is the post to keep; duplicate_post_ids (up to 20, same project) are closed and point at it. Their votes move to the kept post (a person who voted on both counts once), and every task linked to any of them is linked to all, so everyone who asked is told when it ships. Nothing is deleted. Confirm the duplicates with the person first.
Publish Changelog
Publish a changelog entry so it shows on the public portal. Set notify_requesters to true to also email the people whose posts are linked to its task, once; ask the person first. The result says how many were emailed in requesters_notified.
Reply To Contact Message
POST /contact/:id/reply
Reply on a support thread. The reply is stored on the conversation and emailed to the person who wrote in. Show the person the draft and send only after they approve it.
Unlink Post From Task
Remove one post from a task. Other linked posts stay.
Update Changelog
PUT /changelog/:id
Update a changelog draft. Send changelog_id and only the fields that should change.
Update Contact Message
PUT /contact/:id
Mark support messages read, archived, or back to new. Send status and contact_message_id, or contact_message_ids (up to 50) to clear a batch such as vendor spam. Archived messages stay in the inbox history.
Update Post
Update a post. Send post_id and only the fields that should change, such as title, description, or status.
Update Post Comment
Edit one of your own comments on a post. Send comment_id and the new content.
Update Project
PUT /projects/:id
Update a project's name, description, logo_url or settings (portal branding and options; keys you send are merged into the existing settings). is_internal true hides the project's public portal and widget; only members see it. Send project_id and only the fields that should change. Custom domains use add_project_domain.
Update Task
PUT /tasks/:id
Update a task. Send task_id and only the fields that should change. Send project_id to move the task to another project in the same organization; it keeps its id, comments, status and dates.
Update Task Comment
Edit one of your own comments on a task. Send comment_id and the new content.
Verify Project Domain
POST /projects/:id/domain/verify
Check whether a project's custom domain is live: DNS and certificate status, and the records still needed if not.
Questions, answered.
What is the LotsTeam MCP server URL?
https://api.lots.team/mcp. Add it as a remote MCP server (custom connector) in your AI agent and sign in with your Lots account.
Which agents work with LotsTeam?
Claude, ChatGPT (developer mode), Claude Code, Codex, Cursor, Windsurf and any other client that supports remote MCP with OAuth. Agents without MCP use the REST API with an API key.
Where are the LotsTeam API docs?
https://api.lots.team/docs.md: Markdown written so an AI agent can read it. Requests go to https://api.lots.team/api/v1/lotsteam with Authorization: Bearer <your key>.
How do I get a LotsTeam API key?
Use Generate key on this page or at lotstech.com/api. Sign in with your LotsTech account, name the key and copy it once. You can revoke it there at any time.
Does MCP or API access cost extra?
No. It is included with LotsTeam. You pay only for LotsTeam's own plan or usage, and your AI provider bills its own usage.