A Node.js Express server that integrates with Facebook Marketing API to provide a platform for managing ad campaigns, analyzing performance, and receiving optimization recommendations.
A comprehensive Node.js Express server that integrates with the Facebook Marketing API to provide a robust platform for managing Facebook ad campaigns, analyzing performance, and receiving optimization recommendations.
facebook-ads-mcp/
├── src/
│ ├── config/ # Configuration files
│ ├── middleware/ # Express middleware
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ ├── utils/ # Utility functions
│ └── app.js # Express app setup
├── server.js # Server entry point
├── .env.example # Environment variables example
├── package.json # Dependencies and scripts
├── railway.json # Railway deployment config
└── README.md # Project documentation
Clone the repository:
git clone https://github.com/yourusername/facebook-ads-mcp.git cd facebook-ads-mcp
Install dependencies:
npm install
Create a .env
file based on .env.example
:
cp .env.example .env
Update the .env
file with your configuration:
Start the development server:
npm run dev
The server will be available at http://localhost:3000
.
GET /auth/facebook
: Initiate Facebook OAuth flowGET /auth/facebook/callback
: Handle Facebook OAuth callbackPOST /auth/refresh
: Refresh JWT tokenPOST /auth/logout
: Logout userGET /auth/me
: Get current userPUT /auth/me
: Update current userGET /api/ad-accounts
: Get all ad accountsGET /api/ad-accounts/sync
: Sync ad accounts from FacebookGET /api/ad-accounts/:id
: Get ad account by IDGET /api/ad-accounts/:id/insights
: Get insights for an ad accountGET /api/ad-accounts/:id/campaigns
: Get campaigns for an ad accountGET /api/campaigns
: Get all campaignsGET /api/campaigns/sync
: Sync campaigns from FacebookPOST /api/campaigns
: Create a new campaignGET /api/campaigns/:id
: Get campaign by IDPUT /api/campaigns/:id
: Update campaignDELETE /api/campaigns/:id
: Delete campaignGET /api/campaigns/:id/insights
: Get insights for a campaignGET /api/campaigns/:id/adsets
: Get ad sets for a campaignGET /api/campaigns/:id/analytics
: Get analytics for a campaignPOST /api/campaigns/:id/fetch-analytics
: Fetch and store analytics for a campaignGET /api/ad-sets
: Get all ad setsGET /api/ad-sets/sync
: Sync ad sets from FacebookPOST /api/ad-sets
: Create a new ad setGET /api/ad-sets/:id
: Get ad set by IDPUT /api/ad-sets/:id
: Update ad setDELETE /api/ad-sets/:id
: Delete ad setGET /api/ad-sets/:id/insights
: Get insights for an ad setGET /api/ad-sets/:id/ads
: Get ads for an ad setGET /api/ad-sets/:id/analytics
: Get analytics for an ad setPOST /api/ad-sets/:id/fetch-analytics
: Fetch and store analytics for an ad setGET /api/ad-sets/:id/targeting-recommendations
: Get targeting recommendations for an ad setGET /api/ads
: Get all adsGET /api/ads/sync
: Sync ads from FacebookPOST /api/ads
: Create a new adGET /api/ads/:id
: Get ad by IDPUT /api/ads/:id
: Update adDELETE /api/ads/:id
: Delete adGET /api/ads/:id/insights
: Get insights for an adGET /api/ads/:id/analytics
: Get analytics for an adPOST /api/ads/:id/fetch-analytics
: Fetch and store analytics for an adGET /api/ads/:id/creative-recommendations
: Get creative recommendations for an adGET /api/ads/:id/preview
: Get preview URL for an adGET /api/analytics/overview
: Get account overview analyticsGET /api/analytics/campaigns
: Get analytics for all campaignsGET /api/analytics/campaigns/:id
: Get analytics for a specific campaignGET /api/analytics/ad-sets
: Get analytics for all ad setsGET /api/analytics/ad-sets/:id
: Get analytics for a specific ad setGET /api/analytics/ads
: Get analytics for all adsGET /api/analytics/ads/:id
: Get analytics for a specific adPOST /api/analytics/fetch
: Fetch and store analytics for all entitiesGET /api/analytics/comparison
: Get performance comparison between two time periodsGET /api/analytics/metrics
: Get available metrics for analyticsGET /api/recommendations/budget
: Get budget optimization recommendationsGET /api/recommendations/targeting
: Get targeting recommendations for an ad setGET /api/recommendations/creative
: Get creative performance recommendationsGET /api/recommendations/all
: Get all recommendations for an ad accountGET /api/recommendations/summary
: Get recommendations summary for an ad accountGET /api/recommendations/best-practices
: Get best practices recommendationsGET /health
: Health check endpointGET /health/db
: Database health check endpointGET /health/deep
: Deep health check endpointThis project is configured for easy deployment to Railway.
Create a new project on Railway
Connect your GitHub repository
Add the required environment variables in the Railway dashboard
Deploy the project
The railway.json
file in the repository configures the deployment settings, including the health check endpoint and restart policy.
This project implements several security measures:
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!