Database
MongoDB
Use the MongoDB database adapter with createMCPServer
The MongoDB adapter stores documents in configurable collections with string id fields (no ObjectId requirement).
Install
bun add integrate-sdk mongodbCollections
Default collection names:
| Collection | Purpose |
|---|---|
provider_tokens | OAuth tokens |
triggers | Scheduled triggers |
Documents use a string id field as the primary key, plus camelCase fields matching the canonical schema.
Configuration
import { createMCPServer } from "integrate-sdk/server";
import { mongodbAdapter } from "integrate-sdk/adapters/mongodb";
import { MongoClient } from "mongodb";
const client = new MongoClient(process.env.MONGODB_URI!);
const db = client.db("myapp");
export const { client: integrateClient } = createMCPServer({
apiKey: process.env.INTEGRATE_API_KEY,
integrations: [...],
database: mongodbAdapter(db, {
collectionNames: {
providerTokens: "provider_tokens",
triggers: "triggers",
},
}),
getSessionContext: async (req) => { /* ... */ },
});API
mongodbAdapter(db, {
client?: MongoClient,
collectionNames?: {
providerTokens?: string;
triggers?: string;
},
hooks?: IntegrateAdapterHooks,
debugLogs?: boolean,
})Pass client if you need lifecycle management outside the adapter. Triggers are enabled when collectionNames.triggers is set (default: "triggers").
Indexes
Create indexes for production workloads:
db.provider_tokens.createIndex({ userId: 1, provider: 1 });
db.provider_tokens.createIndex(
{ userId: 1, provider: 1, accountEmail: 1 },
{ unique: true, sparse: true }
);
db.triggers.createIndex({ userId: 1, status: 1 });
db.triggers.createIndex({ nextRunAt: 1 });Example
See the MongoDB database example for a complete Next.js app with GitHub OAuth.