初始化提交
Some checks failed
CI / Check / macos-latest (push) Has been cancelled
CI / Check / ubuntu-latest (push) Has been cancelled
CI / Check / windows-latest (push) Has been cancelled
CI / Test / macos-latest (push) Has been cancelled
CI / Test / ubuntu-latest (push) Has been cancelled
CI / Test / windows-latest (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / Secrets Scan (push) Has been cancelled
CI / Install Script Smoke Test (push) Has been cancelled
Some checks failed
CI / Check / macos-latest (push) Has been cancelled
CI / Check / ubuntu-latest (push) Has been cancelled
CI / Check / windows-latest (push) Has been cancelled
CI / Test / macos-latest (push) Has been cancelled
CI / Test / ubuntu-latest (push) Has been cancelled
CI / Test / windows-latest (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / Secrets Scan (push) Has been cancelled
CI / Install Script Smoke Test (push) Has been cancelled
This commit is contained in:
42
crates/openfang-extensions/integrations/aws.toml
Normal file
42
crates/openfang-extensions/integrations/aws.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
id = "aws"
|
||||
name = "AWS"
|
||||
description = "Manage Amazon Web Services resources including S3, EC2, Lambda, and more through the MCP server"
|
||||
category = "cloud"
|
||||
icon = "☁️"
|
||||
tags = ["cloud", "amazon", "infrastructure", "s3", "ec2", "lambda", "devops"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-aws"]
|
||||
|
||||
[[required_env]]
|
||||
name = "AWS_ACCESS_KEY_ID"
|
||||
label = "AWS Access Key ID"
|
||||
help = "The access key ID from your AWS IAM credentials"
|
||||
is_secret = true
|
||||
get_url = "https://console.aws.amazon.com/iam/home#/security_credentials"
|
||||
|
||||
[[required_env]]
|
||||
name = "AWS_SECRET_ACCESS_KEY"
|
||||
label = "AWS Secret Access Key"
|
||||
help = "The secret access key paired with your access key ID"
|
||||
is_secret = true
|
||||
get_url = "https://console.aws.amazon.com/iam/home#/security_credentials"
|
||||
|
||||
[[required_env]]
|
||||
name = "AWS_REGION"
|
||||
label = "AWS Region"
|
||||
help = "The default AWS region to use (e.g., us-east-1, eu-west-1)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to the AWS IAM Console (https://console.aws.amazon.com/iam/) and create or select an IAM user with programmatic access.
|
||||
2. Generate an access key pair and note down the Access Key ID and Secret Access Key.
|
||||
3. Paste both credentials and your preferred AWS region (default: us-east-1) into the fields above.
|
||||
"""
|
||||
49
crates/openfang-extensions/integrations/azure-mcp.toml
Normal file
49
crates/openfang-extensions/integrations/azure-mcp.toml
Normal file
@@ -0,0 +1,49 @@
|
||||
id = "azure-mcp"
|
||||
name = "Microsoft Azure"
|
||||
description = "Manage Azure resources including VMs, Storage, and App Services through the MCP server"
|
||||
category = "cloud"
|
||||
icon = "🔷"
|
||||
tags = ["cloud", "microsoft", "infrastructure", "azure", "devops", "enterprise"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-azure"]
|
||||
|
||||
[[required_env]]
|
||||
name = "AZURE_SUBSCRIPTION_ID"
|
||||
label = "Azure Subscription ID"
|
||||
help = "Your Azure subscription ID (found in the Azure Portal under Subscriptions)"
|
||||
is_secret = false
|
||||
get_url = "https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade"
|
||||
|
||||
[[required_env]]
|
||||
name = "AZURE_TENANT_ID"
|
||||
label = "Azure Tenant ID"
|
||||
help = "Your Azure Active Directory tenant ID"
|
||||
is_secret = false
|
||||
get_url = "https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview"
|
||||
|
||||
[[required_env]]
|
||||
name = "AZURE_CLIENT_ID"
|
||||
label = "Azure Client ID"
|
||||
help = "The application (client) ID of your Azure AD app registration"
|
||||
is_secret = false
|
||||
get_url = "https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade"
|
||||
|
||||
[[required_env]]
|
||||
name = "AZURE_CLIENT_SECRET"
|
||||
label = "Azure Client Secret"
|
||||
help = "A client secret generated for your Azure AD app registration"
|
||||
is_secret = true
|
||||
get_url = "https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. In the Azure Portal, register an application under Azure Active Directory > App registrations and note the Client ID and Tenant ID.
|
||||
2. Create a client secret under Certificates & Secrets for the registered application.
|
||||
3. Assign the appropriate RBAC roles to the application on your subscription, then paste all four values into the fields above.
|
||||
"""
|
||||
35
crates/openfang-extensions/integrations/bitbucket.toml
Normal file
35
crates/openfang-extensions/integrations/bitbucket.toml
Normal file
@@ -0,0 +1,35 @@
|
||||
id = "bitbucket"
|
||||
name = "Bitbucket"
|
||||
description = "Access Bitbucket repositories, pull requests, and pipelines through the MCP server"
|
||||
category = "devtools"
|
||||
icon = "🪣"
|
||||
tags = ["git", "vcs", "code", "pull-requests", "ci", "atlassian"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-bitbucket"]
|
||||
|
||||
[[required_env]]
|
||||
name = "BITBUCKET_USERNAME"
|
||||
label = "Bitbucket Username"
|
||||
help = "Your Bitbucket Cloud username (not email)"
|
||||
is_secret = false
|
||||
get_url = "https://bitbucket.org/account/settings/"
|
||||
|
||||
[[required_env]]
|
||||
name = "BITBUCKET_APP_PASSWORD"
|
||||
label = "Bitbucket App Password"
|
||||
help = "An app password with repository and pull request permissions"
|
||||
is_secret = true
|
||||
get_url = "https://bitbucket.org/account/settings/app-passwords/"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to Bitbucket > Personal Settings > App passwords (https://bitbucket.org/account/settings/app-passwords/).
|
||||
2. Create an app password with 'Repositories: Read/Write' and 'Pull requests: Read/Write' permissions.
|
||||
3. Enter your Bitbucket username and paste the app password into the fields above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/brave-search.toml
Normal file
28
crates/openfang-extensions/integrations/brave-search.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "brave-search"
|
||||
name = "Brave Search"
|
||||
description = "Perform web searches using the Brave Search API through the MCP server"
|
||||
category = "ai"
|
||||
icon = "🦁"
|
||||
tags = ["search", "web", "brave", "api", "information-retrieval"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-brave-search"]
|
||||
|
||||
[[required_env]]
|
||||
name = "BRAVE_API_KEY"
|
||||
label = "Brave Search API Key"
|
||||
help = "An API key from the Brave Search API dashboard"
|
||||
is_secret = true
|
||||
get_url = "https://brave.com/search/api/"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://brave.com/search/api/ and sign up for a Brave Search API plan (free tier available).
|
||||
2. Generate an API key from your Brave Search API dashboard.
|
||||
3. Paste the API key into the BRAVE_API_KEY field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/discord-mcp.toml
Normal file
28
crates/openfang-extensions/integrations/discord-mcp.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "discord-mcp"
|
||||
name = "Discord"
|
||||
description = "Access Discord servers, channels, and messages through the MCP server"
|
||||
category = "communication"
|
||||
icon = "🎮"
|
||||
tags = ["chat", "messaging", "community", "gaming", "voice"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-discord"]
|
||||
|
||||
[[required_env]]
|
||||
name = "DISCORD_BOT_TOKEN"
|
||||
label = "Discord Bot Token"
|
||||
help = "A bot token from the Discord Developer Portal"
|
||||
is_secret = true
|
||||
get_url = "https://discord.com/developers/applications"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to the Discord Developer Portal (https://discord.com/developers/applications) and create a new application.
|
||||
2. Navigate to the 'Bot' section, click 'Add Bot', and copy the bot token.
|
||||
3. Invite the bot to your server using the OAuth2 URL generator with the required permissions, then paste the token into the DISCORD_BOT_TOKEN field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/dropbox.toml
Normal file
28
crates/openfang-extensions/integrations/dropbox.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "dropbox"
|
||||
name = "Dropbox"
|
||||
description = "Access and manage Dropbox files and folders through the MCP server"
|
||||
category = "productivity"
|
||||
icon = "📦"
|
||||
tags = ["files", "storage", "cloud-storage", "sync", "sharing"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-dropbox"]
|
||||
|
||||
[[required_env]]
|
||||
name = "DROPBOX_ACCESS_TOKEN"
|
||||
label = "Dropbox Access Token"
|
||||
help = "A short-lived or long-lived access token from the Dropbox App Console"
|
||||
is_secret = true
|
||||
get_url = "https://www.dropbox.com/developers/apps"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to the Dropbox App Console (https://www.dropbox.com/developers/apps) and create a new app or select an existing one.
|
||||
2. Under the 'OAuth 2' section, generate an access token with the required permissions.
|
||||
3. Paste the access token into the DROPBOX_ACCESS_TOKEN field above.
|
||||
"""
|
||||
35
crates/openfang-extensions/integrations/elasticsearch.toml
Normal file
35
crates/openfang-extensions/integrations/elasticsearch.toml
Normal file
@@ -0,0 +1,35 @@
|
||||
id = "elasticsearch"
|
||||
name = "Elasticsearch"
|
||||
description = "Search and manage Elasticsearch indices and documents through the MCP server"
|
||||
category = "data"
|
||||
icon = "🔍"
|
||||
tags = ["search", "database", "indexing", "analytics", "full-text"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-elasticsearch"]
|
||||
|
||||
[[required_env]]
|
||||
name = "ELASTICSEARCH_URL"
|
||||
label = "Elasticsearch URL"
|
||||
help = "The base URL of your Elasticsearch cluster (e.g., https://my-cluster.es.us-east-1.aws.found.io:9243)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[[required_env]]
|
||||
name = "ELASTICSEARCH_API_KEY"
|
||||
label = "Elasticsearch API Key"
|
||||
help = "An API key with read/write permissions for the target indices"
|
||||
is_secret = true
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Obtain your Elasticsearch cluster URL from your Elastic Cloud dashboard or self-hosted instance configuration.
|
||||
2. Create an API key in Kibana (Stack Management > API Keys) with appropriate index permissions.
|
||||
3. Paste the cluster URL and API key into the fields above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/exa-search.toml
Normal file
28
crates/openfang-extensions/integrations/exa-search.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "exa-search"
|
||||
name = "Exa Search"
|
||||
description = "Perform AI-powered neural searches and retrieve web content through the Exa MCP server"
|
||||
category = "ai"
|
||||
icon = "🔎"
|
||||
tags = ["search", "web", "ai", "neural", "semantic", "information-retrieval"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-exa"]
|
||||
|
||||
[[required_env]]
|
||||
name = "EXA_API_KEY"
|
||||
label = "Exa API Key"
|
||||
help = "An API key from the Exa dashboard"
|
||||
is_secret = true
|
||||
get_url = "https://dashboard.exa.ai/api-keys"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://dashboard.exa.ai/ and create an account or sign in.
|
||||
2. Navigate to API Keys (https://dashboard.exa.ai/api-keys) and generate a new key.
|
||||
3. Paste the API key into the EXA_API_KEY field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/gcp-mcp.toml
Normal file
28
crates/openfang-extensions/integrations/gcp-mcp.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "gcp-mcp"
|
||||
name = "Google Cloud Platform"
|
||||
description = "Manage GCP resources including Compute Engine, Cloud Storage, and BigQuery through the MCP server"
|
||||
category = "cloud"
|
||||
icon = "🌐"
|
||||
tags = ["cloud", "google", "infrastructure", "gce", "gcs", "bigquery", "devops"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-gcp"]
|
||||
|
||||
[[required_env]]
|
||||
name = "GOOGLE_APPLICATION_CREDENTIALS"
|
||||
label = "Service Account Key Path"
|
||||
help = "Absolute path to a GCP service account JSON key file"
|
||||
is_secret = false
|
||||
get_url = "https://console.cloud.google.com/iam-admin/serviceaccounts"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to the GCP Console > IAM & Admin > Service Accounts (https://console.cloud.google.com/iam-admin/serviceaccounts) and create a new service account with the necessary roles.
|
||||
2. Generate a JSON key file for the service account and save it to a secure location on your filesystem.
|
||||
3. Enter the absolute path to the JSON key file in the GOOGLE_APPLICATION_CREDENTIALS field above.
|
||||
"""
|
||||
34
crates/openfang-extensions/integrations/github.toml
Normal file
34
crates/openfang-extensions/integrations/github.toml
Normal file
@@ -0,0 +1,34 @@
|
||||
id = "github"
|
||||
name = "GitHub"
|
||||
description = "Access GitHub repositories, issues, pull requests, and organizations through the official MCP server"
|
||||
category = "devtools"
|
||||
icon = "🐙"
|
||||
tags = ["git", "vcs", "code", "issues", "pull-requests", "ci"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-github"]
|
||||
|
||||
[[required_env]]
|
||||
name = "GITHUB_PERSONAL_ACCESS_TOKEN"
|
||||
label = "GitHub Personal Access Token"
|
||||
help = "A fine-grained or classic PAT with repo and read:org scopes"
|
||||
is_secret = true
|
||||
get_url = "https://github.com/settings/tokens"
|
||||
|
||||
[oauth]
|
||||
provider = "github"
|
||||
scopes = ["repo", "read:org"]
|
||||
auth_url = "https://github.com/login/oauth/authorize"
|
||||
token_url = "https://github.com/login/oauth/access_token"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://github.com/settings/tokens and create a Personal Access Token (classic or fine-grained) with 'repo' and 'read:org' scopes.
|
||||
2. Paste the token into the GITHUB_PERSONAL_ACCESS_TOKEN field above.
|
||||
3. Alternatively, use the OAuth flow to authorize OpenFang directly with your GitHub account.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/gitlab.toml
Normal file
28
crates/openfang-extensions/integrations/gitlab.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "gitlab"
|
||||
name = "GitLab"
|
||||
description = "Access GitLab projects, merge requests, issues, and CI/CD pipelines through the MCP server"
|
||||
category = "devtools"
|
||||
icon = "🦊"
|
||||
tags = ["git", "vcs", "code", "merge-requests", "ci", "devops"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-gitlab"]
|
||||
|
||||
[[required_env]]
|
||||
name = "GITLAB_PERSONAL_ACCESS_TOKEN"
|
||||
label = "GitLab Personal Access Token"
|
||||
help = "A personal access token with api scope from your GitLab instance"
|
||||
is_secret = true
|
||||
get_url = "https://gitlab.com/-/user_settings/personal_access_tokens"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Navigate to GitLab > User Settings > Access Tokens (https://gitlab.com/-/user_settings/personal_access_tokens).
|
||||
2. Create a new personal access token with the 'api' scope and an appropriate expiration date.
|
||||
3. Paste the token into the GITLAB_PERSONAL_ACCESS_TOKEN field above.
|
||||
"""
|
||||
27
crates/openfang-extensions/integrations/gmail.toml
Normal file
27
crates/openfang-extensions/integrations/gmail.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
id = "gmail"
|
||||
name = "Gmail"
|
||||
description = "Read, send, and manage Gmail messages and drafts through the Anthropic MCP server"
|
||||
category = "productivity"
|
||||
icon = "📧"
|
||||
tags = ["email", "google", "messaging", "inbox", "communication"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@anthropic/server-gmail"]
|
||||
|
||||
[oauth]
|
||||
provider = "google"
|
||||
scopes = ["https://www.googleapis.com/auth/gmail.modify"]
|
||||
auth_url = "https://accounts.google.com/o/oauth2/v2/auth"
|
||||
token_url = "https://oauth2.googleapis.com/token"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Click 'Connect' to initiate the OAuth flow with your Google account.
|
||||
2. Grant OpenFang permission to read and modify your Gmail messages when prompted.
|
||||
3. The connection will be established automatically after authorization.
|
||||
"""
|
||||
27
crates/openfang-extensions/integrations/google-calendar.toml
Normal file
27
crates/openfang-extensions/integrations/google-calendar.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
id = "google-calendar"
|
||||
name = "Google Calendar"
|
||||
description = "Manage Google Calendar events, schedules, and availability through the Anthropic MCP server"
|
||||
category = "productivity"
|
||||
icon = "📅"
|
||||
tags = ["calendar", "scheduling", "google", "events", "meetings"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@anthropic/server-google-calendar"]
|
||||
|
||||
[oauth]
|
||||
provider = "google"
|
||||
scopes = ["https://www.googleapis.com/auth/calendar"]
|
||||
auth_url = "https://accounts.google.com/o/oauth2/v2/auth"
|
||||
token_url = "https://oauth2.googleapis.com/token"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Click 'Connect' to initiate the OAuth flow with your Google account.
|
||||
2. Grant OpenFang access to your Google Calendar when prompted.
|
||||
3. The connection will be established automatically after authorization.
|
||||
"""
|
||||
27
crates/openfang-extensions/integrations/google-drive.toml
Normal file
27
crates/openfang-extensions/integrations/google-drive.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
id = "google-drive"
|
||||
name = "Google Drive"
|
||||
description = "Browse, search, and read files from Google Drive through the Anthropic MCP server"
|
||||
category = "productivity"
|
||||
icon = "📁"
|
||||
tags = ["files", "storage", "google", "documents", "cloud-storage"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@anthropic/server-google-drive"]
|
||||
|
||||
[oauth]
|
||||
provider = "google"
|
||||
scopes = ["https://www.googleapis.com/auth/drive.readonly"]
|
||||
auth_url = "https://accounts.google.com/o/oauth2/v2/auth"
|
||||
token_url = "https://oauth2.googleapis.com/token"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Click 'Connect' to initiate the OAuth flow with your Google account.
|
||||
2. Grant OpenFang read-only access to your Google Drive files when prompted.
|
||||
3. The connection will be established automatically after authorization.
|
||||
"""
|
||||
42
crates/openfang-extensions/integrations/jira.toml
Normal file
42
crates/openfang-extensions/integrations/jira.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
id = "jira"
|
||||
name = "Jira"
|
||||
description = "Access Jira issues, projects, boards, and sprints through the Atlassian MCP server"
|
||||
category = "devtools"
|
||||
icon = "📋"
|
||||
tags = ["project-management", "issues", "agile", "atlassian", "tracking"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-atlassian"]
|
||||
|
||||
[[required_env]]
|
||||
name = "JIRA_API_TOKEN"
|
||||
label = "Jira API Token"
|
||||
help = "An API token generated from your Atlassian account"
|
||||
is_secret = true
|
||||
get_url = "https://id.atlassian.com/manage-profile/security/api-tokens"
|
||||
|
||||
[[required_env]]
|
||||
name = "JIRA_INSTANCE_URL"
|
||||
label = "Jira Instance URL"
|
||||
help = "Your Jira Cloud instance URL (e.g., https://yourcompany.atlassian.net)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[[required_env]]
|
||||
name = "JIRA_USER_EMAIL"
|
||||
label = "Jira User Email"
|
||||
help = "The email address associated with your Atlassian account"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://id.atlassian.com/manage-profile/security/api-tokens and create a new API token.
|
||||
2. Enter your Jira Cloud instance URL (e.g., https://yourcompany.atlassian.net) and the email linked to your Atlassian account.
|
||||
3. Paste the API token into the JIRA_API_TOKEN field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/linear.toml
Normal file
28
crates/openfang-extensions/integrations/linear.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "linear"
|
||||
name = "Linear"
|
||||
description = "Manage Linear issues, projects, cycles, and teams through the MCP server"
|
||||
category = "devtools"
|
||||
icon = "📐"
|
||||
tags = ["project-management", "issues", "agile", "tracking", "sprint"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-linear"]
|
||||
|
||||
[[required_env]]
|
||||
name = "LINEAR_API_KEY"
|
||||
label = "Linear API Key"
|
||||
help = "A personal API key from your Linear account settings"
|
||||
is_secret = true
|
||||
get_url = "https://linear.app/settings/api"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Open Linear and go to Settings > API (https://linear.app/settings/api).
|
||||
2. Click 'Create key' to generate a new personal API key.
|
||||
3. Paste the key into the LINEAR_API_KEY field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/mongodb.toml
Normal file
28
crates/openfang-extensions/integrations/mongodb.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "mongodb"
|
||||
name = "MongoDB"
|
||||
description = "Query and manage MongoDB databases and collections through the MCP server"
|
||||
category = "data"
|
||||
icon = "🍃"
|
||||
tags = ["database", "nosql", "document", "mongo", "queries"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-mongodb"]
|
||||
|
||||
[[required_env]]
|
||||
name = "MONGODB_URI"
|
||||
label = "MongoDB Connection URI"
|
||||
help = "A full MongoDB connection string (e.g., mongodb+srv://user:password@cluster.mongodb.net/dbname)"
|
||||
is_secret = true
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Obtain your MongoDB connection URI from MongoDB Atlas (Clusters > Connect > Drivers) or your self-hosted instance.
|
||||
2. Ensure the database user has the necessary read/write permissions for the collections you want to access.
|
||||
3. Paste the full connection URI into the MONGODB_URI field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/notion.toml
Normal file
28
crates/openfang-extensions/integrations/notion.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "notion"
|
||||
name = "Notion"
|
||||
description = "Access and manage Notion pages, databases, and blocks through the MCP server"
|
||||
category = "productivity"
|
||||
icon = "📝"
|
||||
tags = ["notes", "wiki", "knowledge-base", "documentation", "databases"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-notion"]
|
||||
|
||||
[[required_env]]
|
||||
name = "NOTION_API_KEY"
|
||||
label = "Notion Integration Token"
|
||||
help = "An internal integration token created in your Notion workspace settings"
|
||||
is_secret = true
|
||||
get_url = "https://www.notion.so/my-integrations"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://www.notion.so/my-integrations and click 'New integration'.
|
||||
2. Give it a name, select your workspace, and grant the required capabilities (Read/Update/Insert content).
|
||||
3. Copy the Internal Integration Token and paste it into the NOTION_API_KEY field above. Then share relevant pages with the integration in Notion.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/postgresql.toml
Normal file
28
crates/openfang-extensions/integrations/postgresql.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "postgresql"
|
||||
name = "PostgreSQL"
|
||||
description = "Query and manage PostgreSQL databases through the MCP server"
|
||||
category = "data"
|
||||
icon = "🐘"
|
||||
tags = ["database", "sql", "relational", "postgres", "queries"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-postgres"]
|
||||
|
||||
[[required_env]]
|
||||
name = "POSTGRES_CONNECTION_STRING"
|
||||
label = "PostgreSQL Connection String"
|
||||
help = "A full connection URI (e.g., postgresql://user:password@host:5432/dbname)"
|
||||
is_secret = true
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Obtain your PostgreSQL connection string in the format: postgresql://user:password@host:5432/dbname.
|
||||
2. Ensure the database user has the necessary read/write permissions for the tables you want to access.
|
||||
3. Paste the full connection string into the POSTGRES_CONNECTION_STRING field above.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/redis.toml
Normal file
28
crates/openfang-extensions/integrations/redis.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "redis"
|
||||
name = "Redis"
|
||||
description = "Access and manage Redis key-value stores through the MCP server"
|
||||
category = "data"
|
||||
icon = "🔴"
|
||||
tags = ["database", "cache", "key-value", "in-memory", "nosql"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-redis"]
|
||||
|
||||
[[required_env]]
|
||||
name = "REDIS_URL"
|
||||
label = "Redis Connection URL"
|
||||
help = "A Redis connection URL (e.g., redis://user:password@host:6379/0)"
|
||||
is_secret = true
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Obtain your Redis connection URL from your Redis hosting provider or local instance (e.g., redis://localhost:6379/0).
|
||||
2. If authentication is required, include the password in the URL: redis://user:password@host:6379/0.
|
||||
3. Paste the full connection URL into the REDIS_URL field above.
|
||||
"""
|
||||
35
crates/openfang-extensions/integrations/sentry.toml
Normal file
35
crates/openfang-extensions/integrations/sentry.toml
Normal file
@@ -0,0 +1,35 @@
|
||||
id = "sentry"
|
||||
name = "Sentry"
|
||||
description = "Monitor and manage Sentry error tracking, issues, and releases through the MCP server"
|
||||
category = "devtools"
|
||||
icon = "🐛"
|
||||
tags = ["monitoring", "errors", "debugging", "observability", "apm"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-sentry"]
|
||||
|
||||
[[required_env]]
|
||||
name = "SENTRY_AUTH_TOKEN"
|
||||
label = "Sentry Auth Token"
|
||||
help = "An authentication token with project:read and event:read scopes"
|
||||
is_secret = true
|
||||
get_url = "https://sentry.io/settings/account/api/auth-tokens/"
|
||||
|
||||
[[required_env]]
|
||||
name = "SENTRY_ORG_SLUG"
|
||||
label = "Sentry Organization Slug"
|
||||
help = "Your Sentry organization slug (found in Settings > General)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to Sentry > Settings > Auth Tokens (https://sentry.io/settings/account/api/auth-tokens/) and create a new token with 'project:read' and 'event:read' scopes.
|
||||
2. Find your organization slug in Sentry > Settings > General Settings.
|
||||
3. Paste the auth token and organization slug into the fields above.
|
||||
"""
|
||||
41
crates/openfang-extensions/integrations/slack.toml
Normal file
41
crates/openfang-extensions/integrations/slack.toml
Normal file
@@ -0,0 +1,41 @@
|
||||
id = "slack"
|
||||
name = "Slack"
|
||||
description = "Access Slack channels, messages, and users through the MCP server"
|
||||
category = "communication"
|
||||
icon = "💬"
|
||||
tags = ["chat", "messaging", "team", "channels", "collaboration"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-slack"]
|
||||
|
||||
[[required_env]]
|
||||
name = "SLACK_BOT_TOKEN"
|
||||
label = "Slack Bot Token"
|
||||
help = "A bot user OAuth token starting with xoxb-"
|
||||
is_secret = true
|
||||
get_url = "https://api.slack.com/apps"
|
||||
|
||||
[[required_env]]
|
||||
name = "SLACK_TEAM_ID"
|
||||
label = "Slack Team ID"
|
||||
help = "Your Slack workspace team ID (found in workspace settings or URL)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[oauth]
|
||||
provider = "slack"
|
||||
scopes = ["channels:read", "chat:write", "users:read"]
|
||||
auth_url = "https://slack.com/oauth/v2/authorize"
|
||||
token_url = "https://slack.com/api/oauth.v2.access"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Go to https://api.slack.com/apps and create a new Slack app (or use an existing one). Add the 'channels:read', 'chat:write', and 'users:read' bot token scopes.
|
||||
2. Install the app to your workspace and copy the Bot User OAuth Token (starts with xoxb-).
|
||||
3. Paste the bot token and your workspace Team ID into the fields above, or use the OAuth flow to authorize directly.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/sqlite-mcp.toml
Normal file
28
crates/openfang-extensions/integrations/sqlite-mcp.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "sqlite-mcp"
|
||||
name = "SQLite"
|
||||
description = "Query and manage local SQLite databases through the MCP server"
|
||||
category = "data"
|
||||
icon = "💾"
|
||||
tags = ["database", "sql", "relational", "sqlite", "local", "embedded"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-sqlite"]
|
||||
|
||||
[[required_env]]
|
||||
name = "SQLITE_DB_PATH"
|
||||
label = "SQLite Database Path"
|
||||
help = "Absolute path to the SQLite database file (e.g., /home/user/data/mydb.sqlite)"
|
||||
is_secret = false
|
||||
get_url = ""
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Locate the SQLite database file you want to connect to on your local filesystem.
|
||||
2. Enter the absolute path to the database file in the SQLITE_DB_PATH field above.
|
||||
3. Ensure the file has appropriate read/write permissions for the OpenFang process.
|
||||
"""
|
||||
27
crates/openfang-extensions/integrations/teams-mcp.toml
Normal file
27
crates/openfang-extensions/integrations/teams-mcp.toml
Normal file
@@ -0,0 +1,27 @@
|
||||
id = "teams-mcp"
|
||||
name = "Microsoft Teams"
|
||||
description = "Access Microsoft Teams channels, chats, and messages through the MCP server"
|
||||
category = "communication"
|
||||
icon = "👥"
|
||||
tags = ["chat", "messaging", "microsoft", "enterprise", "collaboration"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-teams"]
|
||||
|
||||
[oauth]
|
||||
provider = "microsoft"
|
||||
scopes = ["Team.ReadBasic.All", "Chat.ReadWrite"]
|
||||
auth_url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
|
||||
token_url = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Click 'Connect' to initiate the OAuth flow with your Microsoft account.
|
||||
2. Sign in with your Microsoft 365 account and grant OpenFang permission to read teams and read/write chats.
|
||||
3. The connection will be established automatically after authorization.
|
||||
"""
|
||||
28
crates/openfang-extensions/integrations/todoist.toml
Normal file
28
crates/openfang-extensions/integrations/todoist.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
id = "todoist"
|
||||
name = "Todoist"
|
||||
description = "Manage Todoist tasks, projects, and labels through the MCP server"
|
||||
category = "productivity"
|
||||
icon = "✅"
|
||||
tags = ["tasks", "todo", "project-management", "productivity", "gtd"]
|
||||
|
||||
[transport]
|
||||
type = "stdio"
|
||||
command = "npx"
|
||||
args = ["@modelcontextprotocol/server-todoist"]
|
||||
|
||||
[[required_env]]
|
||||
name = "TODOIST_API_KEY"
|
||||
label = "Todoist API Token"
|
||||
help = "Your personal API token from Todoist settings"
|
||||
is_secret = true
|
||||
get_url = "https://todoist.com/prefs/integrations"
|
||||
|
||||
[health_check]
|
||||
interval_secs = 60
|
||||
unhealthy_threshold = 3
|
||||
|
||||
setup_instructions = """
|
||||
1. Open Todoist and go to Settings > Integrations > Developer (https://todoist.com/prefs/integrations).
|
||||
2. Copy your API token from the 'API token' section.
|
||||
3. Paste the token into the TODOIST_API_KEY field above.
|
||||
"""
|
||||
Reference in New Issue
Block a user