Understanding Providers
Providers are the external services that tools connect to. This page explains what providers are, how authentication works, and how to manage your credentials.
What is a Provider?
A provider is an external API service that tools use to perform actions.
Examples:
- Smartlead - Email outreach platform
- HubSpot - CRM and sales automation
- OpenAI - AI text generation
- Slack - Team communication
- GitHub - Code hosting and collaboration
- Stripe - Payment processing
Two Types of Providers
1. API Providers
Traditional REST APIs with OpenAPI specifications.
- Smartlead, HubSpot, Slack, etc.
- Require API keys or OAuth authentication
- Tools make HTTP requests to their APIs
- Most providers fall into this category
2. MCP Providers
Other MCP servers you can connect to.
- Another MCPBundles user's server
- Self-hosted MCP servers
- MCP servers from other platforms
- Can discover their tools dynamically
Provider Categories
Providers are organized by the type of service they provide (same categories as bundles):
- Analytics: Google Analytics, Mixpanel
- Cloud: AWS, Azure, Google Cloud
- Collaboration: Slack, Microsoft Teams
- CRM: HubSpot, Salesforce
- Developer Tools: GitHub, GitLab
- Email: SendGrid, Mailchimp
- Financial: Stripe, PayPal
- Marketing: Smartlead, ActiveCampaign
- (and 26 more categories)
Authentication Methods
Different providers require different ways to authenticate. MCPBundles supports four methods:
1. OAuth2 (Most Secure)
How it works:
- You click "Connect" on a provider
- Browser opens the provider's authorization page
- You log in and approve access
- Provider sends back an access token
- Token is encrypted and stored
- System automatically refreshes the token before it expires
Advantages:
- You never share your password
- Tokens can be revoked anytime
- Scoped permissions (read-only, write, admin)
- Automatically refreshed
- Most secure method
Examples:
- Google (Gmail, Calendar, Drive)
- Slack
- GitHub
- Microsoft 365
What you do:
- Click "Connect Provider"
- Authorize in the popup
- Done! Token is managed automatically
2. API Key (Most Common)
How it works:
- You generate an API key from the provider's dashboard
- You copy the key
- You paste it into MCPBundles
- Key is encrypted and stored
- Tools use this key for authentication
Advantages:
- Simple and quick
- Works with most APIs
- No browser popup needed
- Long-lived (doesn't expire)
Disadvantages:
- Less secure than OAuth
- Must manually rotate if compromised
- No automatic refresh
Examples:
- Smartlead
- OpenAI
- HubSpot (also supports OAuth)
- Many REST APIs
What you do:
- Go to provider's website → Settings → API Keys
- Click "Generate New API Key"
- Copy the key
- Go to MCPBundles → Providers → Connect Provider
- Paste the key
- Click "Save & Verify"
3. Bearer Token
How it works: Similar to API keys, but used specifically for bearer token authentication (common in modern APIs).
Difference from API Key:
- Sent in
Authorization: Bearer {token}
header - Often shorter-lived than API keys
- Used by newer APIs
Examples:
- Some payment processors
- Modern SaaS APIs
- Internal company APIs
What you do: Same process as API keys—generate, copy, paste, verify.
4. None (Public APIs)
How it works: Provider doesn't require authentication. API is publicly accessible.
Use cases:
- Public data sources
- Weather APIs
- Some government data
- Free tier APIs
What you do:
- Go to provider page
- Click "Create Connection & Test"
- System creates a connection record (for tracking)
- Runs a validation tool to confirm it works
Note: Even though no credentials are needed, MCPBundles creates a "connection" record so it can track which providers you're using and verify they're operational.
Credential Storage & Security
How Credentials Are Stored
All credentials are encrypted at rest:
- API keys encrypted with Fernet (symmetric encryption)
- OAuth tokens encrypted with Fernet
- Bearer tokens encrypted with Fernet
- Encryption keys stored separately from data
- Each user's credentials completely isolated
What we store:
- Encrypted credential data (JSON structure with all credential fields)
- Credential type (API_KEY, OAUTH2, etc.)
- When it was created
- When it was last used
- Verification status
- Granted OAuth scopes (if applicable)
What we DON'T store:
- Your password (for OAuth)
- Unencrypted keys
- Data from the provider's API
Schema-Driven Credentials
Some providers use schema-driven credentials that define multiple fields instead of a single API key. This provides:
For SaaS providers:
instance_url
- Your organization's unique instance URLapi_key
- Your API key for that instance- Example: Salesforce, ServiceNow, Jira Cloud
For database providers:
host
- Database server hostnameport
- Database port numberuser
- Database usernamepassword
- Database passworddatabase
- Database name- Example: PostgreSQL, MySQL, MongoDB
How it works:
- Provider defines a
credential_schema
with expected fields - UI automatically renders form inputs for each field
- Backend injects standardized headers based on schema:
x-{provider}-instance-url
for instance URLsx-{provider}-dsn
for database connection stringsx-{provider}-{field}
for individual connection parameters
- Tools read from these headers to connect dynamically
Benefits:
- No hardcoded base URLs in provider config
- Support for multi-tenant SaaS (each user connects to their instance)
- Consistent database connection patterns
- Self-documenting credential requirements
User Isolation
Your credentials are completely isolated from other users:
- No user can see another user's credentials
- Shared bundles use each user's own credentials
- Even admins can't view your encrypted keys
- Database queries are automatically scoped to your user ID
Credential Verification
After adding credentials, the system verifies they work by running a test tool.
Verification Process
When you add credentials:
-
Credentials Saved
- Status:
ACTIVE
- Verification:
UNVERIFIED
- Status:
-
Choose Validation Tool
- Pick a tool to test with (e.g., "List Campaigns")
- Provide any required arguments
- Click "Run Validation"
-
Validation Runs
- Tool calls the provider's API using your credentials
- If successful: status changes to
VERIFIED
- If failed: status changes to
ERROR
-
Result Displayed
- Success: Green checkmark, "Credentials verified!"
- Failure: Red X, error message with details
Why Verification Matters
Unverified credentials:
- Tools using this provider won't appear in your AI
- Bundles show as "Partial" or "Blocked"
- You can't use any tools that need this provider
Verified credentials:
- All tools become available
- Bundles show as "Operational"
- Tools work in your AI immediately
Verification Statuses
Status | Icon | Meaning | What to Do |
---|---|---|---|
Verified | 🟢 | Tested and working | Nothing - ready to use |
Unverified | 🟡 | Not tested yet | Run validation |
Error | 🔴 | Validation failed | Check credentials, try again |
Expired | 🟠 | OAuth token expired | Re-authorize (auto-refresh failed) |
Pending | ⚪ | Validation in progress | Wait for completion |
OAuth Scopes & Permissions
OAuth providers use "scopes" to control what your tools can access.
What Are Scopes?
Scopes are specific permissions that define what actions are allowed.
Examples:
read:campaigns
- Read campaign datawrite:campaigns
- Create/modify campaignsadmin:account
- Full account accessemail.send
- Send emailscalendar.readonly
- Read calendar events
How Scopes Work in MCPBundles
When you connect a provider:
- System requests specific scopes based on which tools you're using
- Provider shows you what permissions are being requested
- You approve (or deny)
- Token is granted with those scopes
What tools can do:
- Tools that need
read:campaigns
will work - Tools that need
write:campaigns
won't work (if you only granted read) - You'll see a "Scope Mismatch" error for those tools
Scope Mismatches
Sometimes a tool needs more permissions than you've granted.
Example:
- You authorized Smartlead with
read:campaigns
scope - Tool "Create Campaign" needs
write:campaigns
scope - Tool appears as "Scope Mismatch" and won't work
How to fix:
- Go to Provider → Re-authorize
- Grant additional scopes when prompted
- System updates your credential
- Tool becomes available
Granting Minimal Scopes
Best practice: Only grant scopes you actually need.
- Review what each scope allows
- Start with read-only scopes
- Add write scopes only for tools you trust
- Avoid "admin" or "full access" scopes unless necessary
OAuth Token Refresh
OAuth tokens expire after a certain time (1 hour, 1 day, 1 week, etc.). MCPBundles automatically refreshes them.
How Auto-Refresh Works
Background process:
- System checks tokens every hour
- If token expires in < 24 hours, refresh it
- Use refresh token to get new access token
- Update credential with new token
- No action needed from you
If refresh fails:
- Status changes to
EXPIRED
- You'll see "Re-authorization required"
- Click "Re-authorize" to get a new token
- All tools resume working
Manual Re-authorization
If automatic refresh fails (provider revoked access, refresh token expired, etc.):
- Go to Provider page
- Click "Re-authorize"
- Complete OAuth flow again
- New token is stored
- Status changes back to
VERIFIED
Connection States
Providers show different connection states based on your credentials:
Connected 🟢
You have verified credentials. Provider is working.
- At least one credential is
ACTIVE
andVERIFIED
- All tools using this provider are available
- No action needed
Unverified 🟡
You have credentials but they haven't been tested yet.
- Credential exists but verification status is
UNVERIFIED
- Tools using this provider are hidden
- Run validation to fix
Error 🔴
Credentials exist but validation failed.
- Latest validation returned an error
- Credential might be invalid, expired, or revoked
- Delete and re-add credentials, or re-authorize
None ⚪
No credentials exist for this provider.
- You haven't connected it yet
- Tools needing this provider won't work
- Click "Connect Provider" to fix
Attention
Mix of error and unverified credentials.
- Some credentials have errors
- Some need verification
- Review each credential's status
Managing Multiple Credentials
Some users need multiple credentials for the same provider:
Use Cases
- Production vs. Development: Different API keys for different environments
- Multiple Accounts: Personal and business Slack workspaces
- Team Members: Different GitHub accounts for different projects
How It Works
- Only one credential can be active per provider per user
- Last verified credential becomes the active one
- Tools use the active credential
- Switching credentials: disable old, add new
Switching Credentials
To switch from production to development API key:
- Go to Provider → Credentials
- Delete or disable the old credential
- Add new credential
- Verify the new one
- Tools now use the new credential
Provider Status
Providers themselves have status beyond your credentials:
Active
Provider is operational and supported.
- You can connect credentials
- Tools work normally
- Regular updates and maintenance
Inactive
Provider is temporarily unavailable.
- Platform issues
- API maintenance
- System can't reach provider
- Your credentials are saved but tools won't work
Deprecated
Provider is being phased out.
- Still works but no longer recommended
- Migrate to alternative provider
- Will eventually become inactive
Common Workflows
Workflow 1: Connecting OAuth Provider
- Dashboard → Providers → Find provider (e.g., Slack)
- Click "Connect Provider"
- Click "Authorize with OAuth"
- Browser opens Slack's authorization page
- Review requested scopes
- Click "Allow"
- Redirected back to MCPBundles
- Credential saved with status
UNVERIFIED
- Click "Choose Validation Tool"
- Select a test tool (e.g., "List Channels")
- Click "Run Validation"
- Success! Status changes to
VERIFIED
- All Slack tools are now available
Workflow 2: Connecting API Key Provider
- Go to Smartlead.ai → Settings → API Keys
- Click "Generate API Key"
- Copy the key
- Go to MCPBundles → Providers → Smartlead
- Click "Connect Provider"
- Paste API key
- Click "Save & Verify"
- System saves key (encrypted)
- Choose validation tool
- Provide test arguments (if needed)
- Click "Run Validation"
- Success! Smartlead tools are ready
Workflow 3: Fixing Expired OAuth Token
- You see "Bundle Needs Attention" notification
- Go to Bundle → Providers
- See "Smartlead: EXPIRED"
- Click provider name
- Click "Re-authorize"
- Complete OAuth flow again
- New token stored
- Status returns to
VERIFIED
- Bundle returns to "Operational"
Workflow 4: Testing Public API (No Auth)
- Dashboard → Providers → Find public API
- Click "Create Connection & Test"
- Empty credential is created (no auth needed)
- Choose validation tool
- Click "Run Validation"
- Tool connects to public API
- Success! Status:
VERIFIED
- Tools using this provider are available
Troubleshooting
"Credential verification failed"
Causes:
- Invalid API key
- Wrong OAuth scopes
- Provider is down
- Network issues
Solutions:
- Double-check the API key is correct
- Re-authorize with correct scopes
- Wait and try again if provider is down
- Check error message for specifics
"Scope mismatch"
Cause: Tool needs permissions you didn't grant.
Solution:
- Go to provider
- Click "Re-authorize"
- Grant additional scopes
- Tools will become available
"Token expired" (OAuth)
Cause: Auto-refresh failed.
Solution:
- Click "Re-authorize"
- Complete OAuth flow
- New token is stored
"Provider inactive"
Cause: Provider's API is down or deprecated.
Solution:
- Wait for provider to come back online
- Check provider's status page
- Consider alternative providers
Next Steps
- Quick Start Guide - Step 2 covers connecting credentials
- Troubleshooting Connectivity - Credential errors and fixes
- Understanding Bundles - How bundles use providers