Bullet for Business
Your pricing rules, your account data, your approval logic: package them once as a Bullet and everyone in your organization uses them from the agent they already work in, signed in as themselves. Hosted on your own machine, at your own address.

The problem
Ask an agent to quote a deal and it will, confidently, with last year's price list. Ask it about an account and it has never heard of them. So every answer gets re-derived by hand, a little differently each time.
A Bullet closes that gap. The logic runs once, on your infrastructure, and your agent calls it like any other tool, with the caller's name attached to every request.
How it works
tools.js
// tools.js - the whole Bullet. No server: the platform runs it.
export const tools = {
quote_price: {
description: "Price a plan for an account",
input: { type: "object",
properties: { employees: { type: "integer" },
plan: { enum: ["starter", "growth", "scale"] } },
required: ["employees", "plan"] },
handler: async ({ employees, plan }, ctx) => {
const crm = await ctx.connections("hubspot"); // the caller's account
const notes = await ctx.kv.get("notes"); // the caller's data
return price(employees, plan, crm, notes);
},
},
};Run the logic only your business has, connect the systems it lives in, and give your agent the tools to handle the rest. Everyone in your organization connects at mcp.srf.gg/your-bullet from whichever agent they use: in Claude it is a connector they add once and sign in to, and on Claude Team and Enterprise an owner adds it for the whole company. Push a change and they all have it.
Bullets speak MCP, so they work in Claude, ChatGPT, Cursor, Windsurf and any other agent that does. Paste one address and sign in with srf, or use an API key. The tools show up and the agent starts using them. Only people in your organization get in.

Every call is someone
A Bullet is shared by the whole team, but nothing inside it is anonymous. Each call carries the caller's identity, so the Bullet can read that person's connected accounts, keep that person's data, and answer for that person only.
Declare the accounts the Bullet needs, whether a sign-in like HubSpot or Google, or credentials like a Salesforce token, and each member connects their own once. The Bullet reads the caller's connection; nobody shares a login.

What a Bullet can do
Calculations, scoring, rules and checks, written once and applied the same way every time.
Each person signs in to the tools they already use, or adds an API key. The Bullet works with their account, not a shared one.
Anything with an endpoint: internal systems, vendors, public data. The agent never sees the keys.
A private store for each person, a shared one for the team, and the organization database for anything relational.
Store uploads, generate documents, and hand back links your agent can share.
Notify a customer, a teammate or an approver from your own domain, as part of the same request.
Queue the slow parts and let the request return right away; the result lands when it is ready.
Every call carries the person behind it, so the Bullet can check what they are allowed to see and do.
End to end
A sales team puts its deal desk behind one Bullet. Here is what happens when a rep asks their agent for a quote.
Dana, account executive, in her agent
“Quote Acme Dental on Growth for 42 people across three locations, and send Maya a proposal.”
42 employees, 3 locations, in proposal stage, owned by Anthony.
Growth plan at this year's rate, the multi-site implementation fee, no discount that isn't earned.
Under the discount limit, so no manager sign-off is needed. Over it, the manager is asked first.
Your template, your terms, published on your subdomain with a tracked link for Maya.
The quote and the proposal are logged on the account, so the next person sees them.
Professional services
“Scope a 12-week data migration for Northwind and send a draft SOW.”
Result: A staffed, priced SOW that clears your margin rules, ready to send.
Operations
“We're low on exam gloves at the Harbor site. Reorder what we need.”
Result: A PO at contract pricing, routed for approval only if it's over the limit.
What teams build
Pricing tiers, discounts and quote rules, applied the same way every time.
CRM facts and the last touchpoint, in the caller's own portal.
Who can sign off on what, encoded once instead of remembered.
Stock, capacity and lead times from the systems that hold them.
Named questions over the organization database, safe to ask.
Classify, route and draft the first reply by your own criteria.
The approved language for each situation, and when it applies.
Book against real calendars and real headcount.
One place for all of them
Every Bullet in the organization is listed with its status, its tools, and what it needs from you. Open one to connect an account or add it to your agent. New hires find what exists instead of asking.

Business
Priced per organization, not per seat. Bullets run on your dedicated machine, always on, so a tool answers the first time your agent asks, not after a wake-up.
Talk to us