This document provides setup instructions and troubleshooting guidance for all supported integration types in the Citadel platform.
Connect to Atlassian Confluence for documentation and knowledge base management.
Authentication Method: API Key
Setup Instructions:
- Log in to your Atlassian account
- Go to Account Settings > Security > API tokens
- Create a new API token
- In the integration form, provide:
- Email: Your Atlassian account email
- API Token: The token you just created
- Base URL: Your Confluence instance URL (e.g., https://your-domain.atlassian.net)
Required Permissions:
- Read access to Confluence spaces
- Write access if you want to create/update pages
Connect to Atlassian Jira for issue tracking and project management.
Authentication Method: API Key
Setup Instructions:
- Log in to your Atlassian account
- Go to Account Settings > Security > API tokens
- Create a new API token
- In the integration form, provide:
- Email: Your Atlassian account email
- API Token: The token you just created
- Base URL: Your Jira instance URL (e.g., https://your-domain.atlassian.net)
Required Permissions:
- Read access to Jira projects
- Write access if you want to create/update issues
Connect to ServiceNow for IT service management and workflow automation.
Authentication Method: Basic Auth
Setup Instructions:
- Log in to your ServiceNow instance as an administrator
- Create a dedicated integration user account
- In the integration form, provide:
- Username: ServiceNow username
- Password: ServiceNow password
- Instance URL: Your ServiceNow instance URL (e.g., https://your-instance.service-now.com)
Required Permissions:
- Read access to tables you want to query
- Write access if you want to create/update records
Connect to Slack for team communication and notifications.
Authentication Method: OAuth 2.0
Setup Instructions:
- Go to https://api.slack.com/apps
- Create a new Slack app or select an existing one
- Go to OAuth & Permissions
- Add the required scopes (e.g., chat:write, channels:read)
- Install the app to your workspace
- In the integration form, provide:
- Client ID: From Basic Information
- Client Secret: From Basic Information
- Workspace ID: Your Slack workspace ID
Required Scopes:
chat:write- Send messageschannels:read- List channelsusers:read- Read user information
Connect to Microsoft SharePoint and Teams via Graph API.
Authentication Method: OAuth 2.0
Setup Instructions:
- Go to Azure Portal > Azure Active Directory > App registrations
- Create a new app registration
- Go to Certificates & secrets and create a new client secret
- Go to API permissions and add required Microsoft Graph permissions
- In the integration form, provide:
- Client ID: Application (client) ID from app registration
- Client Secret: The secret you created
- Tenant ID: Directory (tenant) ID from Azure AD
Required Permissions:
Files.Read.All- Read files in SharePointSites.Read.All- Read SharePoint sitesUser.Read- Read user profile
Connect to Zendesk for customer support and ticketing.
Authentication Method: API Key
Setup Instructions:
- Log in to your Zendesk account as an administrator
- Go to Admin > Channels > API
- Enable token access and create a new API token
- In the integration form, provide:
- Email: Your Zendesk account email
- API Token: The token you created
- Subdomain: Your Zendesk subdomain (from your-company.zendesk.com)
Required Permissions:
- Read access to tickets
- Write access if you want to create/update tickets
Connect to PagerDuty for incident management and on-call scheduling.
Authentication Method: Bearer Token
Setup Instructions:
- Log in to your PagerDuty account
- Go to Integrations > API Access Keys
- Create a new API key
- In the integration form, provide:
- API Token: The API key you created
Required Permissions:
- Read access to incidents
- Write access if you want to create/update incidents
Execute custom business logic via Lambda functions as MCP tools.
Authentication Method: IAM Role
Setup Instructions:
-
Create an IAM Execution Role:
# Create a trust policy for Lambda cat > trust-policy.json << EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF # Create the role aws iam create-role \ --role-name LambdaExecutionRole \ --assume-role-policy-document file://trust-policy.json # Attach the Lambda execution policy aws iam attach-role-policy \ --role-name LambdaExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
-
Create Your Lambda Function:
# example_function.py def lambda_handler(event, context): # Your business logic here return { 'statusCode': 200, 'body': 'Hello from Lambda!' }
-
Define the Tool Schema:
{ "name": "my_custom_tool", "description": "Executes custom business logic", "inputSchema": { "type": "object", "properties": { "input_param": { "type": "string", "description": "Input parameter for the function" } }, "required": ["input_param"] } } -
Configure the Integration:
- Execution Role ARN:
arn:aws:iam::123456789012:role/LambdaExecutionRole - Lambda Function ARN:
arn:aws:lambda:us-east-1:123456789012:function:MyFunction - Tool Schema: Paste the JSON schema from step 3
- AWS Region: The region where your Lambda function is deployed (e.g.,
us-east-1)
- Execution Role ARN:
Required IAM Permissions:
lambda:InvokeFunction- To invoke the Lambda function
Troubleshooting:
- Error: "Invalid Lambda ARN format" - Ensure your Lambda ARN follows the format:
arn:aws:lambda:region:account:function:function-name - Error: "Execution role lacks necessary permissions" - Add
lambda:InvokeFunctionpermission to the execution role - Error: "Tool schema must be valid JSON" - Validate your JSON syntax using a JSON validator
- Error: "Tool schema must include required fields" - Ensure your schema includes
name,description, andinputSchemafields
Direct integration with AWS services like DynamoDB, S3, Lambda, SQS, and SNS.
Authentication Method: IAM Role
Setup Instructions:
-
Create an IAM Execution Role:
# Create a trust policy for the service cat > trust-policy.json << EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF # Create the role aws iam create-role \ --role-name ServiceExecutionRole \ --assume-role-policy-document file://trust-policy.json
-
Attach Service-Specific Permissions:
For DynamoDB:
aws iam attach-role-policy \ --role-name ServiceExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess
For S3:
aws iam attach-role-policy \ --role-name ServiceExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
For SQS:
aws iam attach-role-policy \ --role-name ServiceExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSQSFullAccess
For SNS:
aws iam attach-role-policy \ --role-name ServiceExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess
-
Configure the Integration:
- Execution Role ARN:
arn:aws:iam::123456789012:role/ServiceExecutionRole - AWS Service: Select from dropdown (DynamoDB, S3, Lambda, SQS, SNS)
- AWS Region: The region for the service (e.g.,
us-east-1)
- Execution Role ARN:
Required IAM Permissions:
- DynamoDB:
dynamodb:ListTables,dynamodb:GetItem,dynamodb:PutItem,dynamodb:Query,dynamodb:Scan - S3:
s3:ListBucket,s3:GetObject,s3:PutObject - Lambda:
lambda:InvokeFunction,lambda:ListFunctions - SQS:
sqs:SendMessage,sqs:ReceiveMessage,sqs:DeleteMessage - SNS:
sns:Publish,sns:Subscribe,sns:ListTopics
Troubleshooting:
- Error: "Invalid IAM Role ARN format" - Ensure your role ARN follows the format:
arn:aws:iam::account:role/role-name - Error: "Execution role lacks permissions for {service}" - Add the appropriate service permissions to the execution role
- Error: "Invalid AWS region code" - Use a valid AWS region code like
us-east-1,eu-west-1, etc.
Connect to external MCP-compatible servers for specialized tools and third-party services.
Authentication Method: Configurable (API Key, OAuth 2.0, or Custom)
Setup Instructions:
-
Obtain API Key from MCP Server Provider:
- Contact your MCP server provider or check their documentation
- Generate an API key from their dashboard
-
Configure the Integration:
- Authentication Method: Select "API Key"
- MCP Server URL:
https://mcp.example.com - API Key: Your API key from step 1
-
Register Your Application:
- Go to your MCP server provider's developer portal
- Create a new OAuth application
- Note the Client ID and Client Secret
-
Configure the Integration:
- Authentication Method: Select "OAuth 2.0"
- MCP Server URL:
https://mcp.example.com - Client ID: Your OAuth client ID
- Client Secret: Your OAuth client secret
-
Consult MCP Server Documentation:
- Check your MCP server's authentication requirements
- Prepare any custom headers or tokens needed
-
Configure the Integration:
- Authentication Method: Select "Custom"
- MCP Server URL:
https://mcp.example.com - Follow any additional configuration steps provided by your MCP server
Required Permissions:
- Varies by MCP server provider
- Typically requires read access to tools and resources
Troubleshooting:
- Error: "MCP Server URL must be a valid HTTPS URL" - Ensure your URL uses HTTPS protocol and is properly formatted
- Error: "Unable to connect to MCP server" - Check network connectivity and ensure the server URL is correct
- Error: "MCP server authentication failed" - Verify your API key or OAuth credentials are correct and not expired
Integration Status Stuck in "Configuring":
- Ensure all required fields are filled in correctly
- Test the connection to verify credentials
- Check the error message for specific issues
Connection Test Fails:
- Verify credentials are correct
- Check network connectivity
- Ensure the service is accessible from your environment
- Review IAM permissions for AWS integrations
Integration Disconnects Unexpectedly:
- Check if credentials have expired
- Verify the service is still accessible
- Review error logs for specific issues
AgentCore Gateway Not Configured:
- Verify the Services Stack deployed successfully
- Check that the Gateway ID is exported from the Services Stack
- Redeploy the backend stack to ensure Gateway ID is imported:
./deploy.sh --backend-only --profile your-profile
IAM Role Permissions:
- Use the AWS IAM Policy Simulator to test permissions
- Ensure the trust policy allows the correct service to assume the role
- Check CloudWatch Logs for detailed error messages
If you continue to experience issues:
- Check the error message in the integration card
- Review the CloudWatch Logs for detailed error information
- Consult the service provider's documentation
- Contact support with the integration ID and error details
The AgentCore Gateway ID is automatically imported from the Services Stack during deployment. No manual configuration is required in your backend/.env file.
If you need to verify the Gateway ID:
# Get Gateway ID from CloudFormation exports
aws cloudformation list-exports \
--query "Exports[?Name=='citadel-services-dev-GatewayId'].Value" \
--output textEnsure your AWS credentials are configured:
# Option 1: Environment variables
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_REGION=us-east-1
# Option 2: AWS CLI configuration
aws configure- Use Dedicated Service Accounts: Create dedicated service accounts or IAM roles for integrations rather than using personal credentials
- Principle of Least Privilege: Grant only the minimum permissions required for the integration to function
- Rotate Credentials Regularly: Update API keys and secrets on a regular schedule
- Monitor Integration Health: Regularly check integration status and test connections
- Use Environment-Specific Configurations: Maintain separate configurations for development, staging, and production environments
- Document Custom Configurations: Keep notes on any custom settings or configurations for your integrations