Logins expire
Access to an app runs out and has to be renewed. If two requests try to renew it at the same time, one of them fails and the user is logged out. Seam renews once, safely, for everyone.
renew once · retry onceSeam gives your agent the apps your users already use. Add one endpoint, and it can find and run actions in 113 apps. It never sees a password or a token.
search_actions("open a bug in our repo") → github.create_issue 0.91 → linear.create_issue 0.84
describe_action("github", "create_issue") → owner*, repo*, title*, body
execute_action("github", "create_issue", {owner: "acme", repo: "api", title: "Checkout 500 on EUR"})
→ {status: 201, number: 1482, url: "github.com/acme/api/issues/1482"}
connection maria@acme · github token gho_••••••••••••• expires in 3 min → renew
check fields ok ✓ address api.github.com ✓ real add key Authorization: Bearer ••• send POST /repos/acme/api/issues
reply 201 · key removed return clean result to agent
{
"mcpServers": {
"seam": {
"url": "https://seam.in-parallel.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
} 113 apps, one connection. See the full list.
the problem
An agent that works inside Slack, HubSpot or GitHub needs a login for each app. Logins expire. Every app has its own rules. And it is easy to end up with passwords in your logs.
Access to an app runs out and has to be renewed. If two requests try to renew it at the same time, one of them fails and the user is logged out. Seam renews once, safely, for everyone.
renew once · retry onceGitHub pages results one way, Stripe another. Linear only speaks GraphQL. Each app has its own limits and error codes. Seam handles that so your agent does not have to.
paging · limits · retriesIf the agent builds the request itself, the password goes through the model. Then it shows up in logs, test data and support tickets. With Seam, the agent only ever sees the names of fields.
agent sees fields, not secretshow it works
Giving an agent hundreds of commands fills up its memory before it starts. Seam gives it four. The agent uses them to find and run anything in the catalog.
search_actions(query)The agent describes what it wants to do. Seam returns the best matching actions.
describe_action(provider, name)Seam tells the agent which fields to fill in. Nothing more.
execute_action(provider, name, args)Seam runs it on the user's own account. If the user has not connected that app yet, Seam returns a link to do so.
list_connections()Which apps this user has connected, and whether each one still works.
Works with any agent that speaks MCP, the open standard for connecting AI to tools. Each user gets their own key. A user who has not connected GitHub cannot touch GitHub. They can never reach another user's account.
use cases
Each card is something you can ask an agent today. Underneath is what Seam actually runs. Every call is a real action in the catalog.
Someone reported a checkout bug in #support. File it in the api repo and reply with the link.
What changed between v2.3 and v2.4? Match it to our Linear issues and email the summary to the team.
Did the last production deploy go through? If it failed, show me the logs and tell the channel.
Find Maria's last charge, refund it, and open a ticket so finance knows why.
Read the unanswered mail from this week and write draft replies for me to check.
Look at today's meetings. Make a task for each thing I promised and find a free slot for the follow-up.
Add staging.acme.com to the new project and create the DNS record for it.
Read these five competitor pricing pages. Put a summary in Notion and post the link.
Go through the open comments on the checkout file and make an issue for each one.
security
This is the part to show your security team. Each promise below is built into how Seam works. There is no setting you could forget to turn on.
under the hood
There is no custom code for GitHub, Slack or Stripe. Each app is described in one short file: where to send requests, how to log in, and which actions exist. One engine reads those files and does the work.
# providers/github.exs (shortened) %{ slug: "github", auth_mode: :oauth2, proxy: %{ "base_url" => "https://api.github.com", "hosts" => ["api.github.com"] }, retry: %{"statuses" => [429, 502, 503], "rate_limit_reset_header" => "x-ratelimit-reset"}, pagination: %{"type" => "link"}, actions: [ %{"name" => "create_issue", "method" => "post", "path" => "/repos/{owner}/{repo}/issues", "params" => %{ "body" => %{"required" => ["title"], "visible" => ["title", "body"]}}} ] }
Write the file, add a logo, open a pull request. Seam checks the file when it loads.
Each field is either open to the agent or set by Seam. Remove a field from the visible list and the agent can no longer change it.
Linear and monday.com use GraphQL. The agent never sees it. It just fills in fields like anywhere else.
Because every app is a file, your security team can read exactly what Seam will do before you turn it on.
apps
Every app here can be connected today. The ones with a number also have ready-made actions the agent can find and run. The rest can be reached, but the actions are still being written.
No app matches that search. You can add one with a file.
where it runs
Most tools like this only run in the US. Seam is one program with one database, so you can run it in three ways.
default
You get a key and start. Data stays in the EU.
for products
Seam runs as part of your own app. Your users, your rules, our engine.
for strict rules
Run it in your own cloud or data centre. Keys never leave your network.
Today the agent talks to each app in that app's own way. Next, Seam will let the agent say "list my open issues" once, and get the same answer whether the team uses Linear, Jira or GitHub.
pricing
Free to start, with $20 of tokens. After that it is metered. You pay what it costs us to run, plus a fixed margin, so your bill is easy to predict.
About 10 million tokens. No card needed. When the credit runs out, you choose whether to keep going.
Get a keyThe same unit your model uses. Seam counts what your agent sends in and what the app sends back. Nothing else is billed.
Our cost to run a million tokens is $1.60. We add 25%. That is the whole formula: $1.60 × 1.25 = $2.00.
Every app and every feature is included. Set a monthly cap and Seam stops at it. Running it on your own servers is a yearly licence; talk to us.
questions
No. The agent sends field names and values. Seam adds the key after checking the request, and removes it from the reply before the agent sees it.
Write a file for it. If the app uses a normal login method, no code is needed. We can review your file for you.
Not to start. For real users we recommend your own, so people see your name when they connect. Seam can set them up for you.
Set a monthly cap. Seam stops at the cap and tells your agent why. You will never get a bill you did not agree to.
Any agent that speaks MCP. You can also try every action by hand in the browser before you connect an agent.
Leave your email. We will send your key as soon as your account is ready.
We use your email to send your key and nothing else. Privacy policy.