Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
{"name": "web_data_github_repository_file", "description": "Quickly read structured GitHub repository data. Requires a valid GitHub repository file URL. This can be a cache lookup, so it can be more reliable than scraping."},
{"name": "web_data_yahoo_finance_business", "description": "Quickly read structured Yahoo Finance business data. Requires a valid Yahoo Finance business URL. This can be a cache lookup, so it can be more reliable than scraping."},
{"name": "web_data_x_posts", "description": "Quickly read structured X (Twitter) post data. Requires a valid X post URL. This can be a cache lookup, so it can be more reliable than scraping."},
{"name": "web_data_x_profile_posts", "description": "Quickly read structured X (Twitter) posts from a profile. Requires a valid X profile URL (e.g. https://x.com/username). Returns the most recent posts from the profile."},
{"name": "web_data_zillow_properties_listing", "description": "Quickly read structured Zillow properties listing data. Requires a valid Zillow properties listing URL. This can be a cache lookup, so it can be more reliable than scraping."},
{"name": "web_data_booking_hotel_listings", "description": "Quickly read structured Booking.com hotel listings data. Requires a valid Booking hotel listing URL. This can be a cache lookup, so it can be more reliable than scraping."},
{"name": "web_data_youtube_profiles", "description": "Quickly read structured YouTube profiles data. Requires a valid YouTube profile URL. This can be a cache lookup, so it can be more reliable than scraping."},
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@brightdata/mcp",
"version": "2.8.3",
"version": "2.8.4",
"description": "An MCP interface into the Bright Data toolset",
"type": "module",
"main": "./server.js",
Expand Down
26 changes: 23 additions & 3 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,9 @@ const datasets = [{
id: 'linkedin_posts',
dataset_id: 'gd_lyy3tktm25m4avu764',
description: [
'Quickly read structured linkedin posts data',
'Quickly read structured linkedin posts data.',
'Requires a real LinkedIn post URL, for example:',
'linkedin.com/pulse/... or linkedin.com/posts/...',
'This can be a cache lookup, so it can be more reliable than scraping',
].join('\n'),
inputs: ['url'],
Expand Down Expand Up @@ -802,6 +804,23 @@ const datasets = [{
'This can be a cache lookup, so it can be more reliable than scraping',
].join('\n'),
inputs: ['url'],
}, {
id: 'x_profile_posts',
dataset_id: 'gd_lwxkxvnf1cynvib9co',
description: [
'Quickly read structured X posts from a profile.',
'Requires a valid X profile URL (e.g. https://x.com/username).',
'Returns the most recent posts from the profile.',
'Optionally filter by date range using start_date and end_date',
'(format: YYYY-MM-DD).',
].join('\n'),
inputs: ['url', 'start_date', 'end_date'],
defaults: {start_date: '', end_date: ''},
trigger_params: {
type: 'discover_new',
discover_by: 'profile_url_most_recent_posts',
limit_per_input: 10,
},
},
{
id: 'zillow_properties_listing',
Expand Down Expand Up @@ -867,7 +886,8 @@ const dataset_id_to_title = id=>{
.join(' ');
};

for (let {dataset_id, id, description, inputs, defaults = {}, fixed_values = {}} of datasets)
for (let {dataset_id, id, description, inputs, defaults = {},
fixed_values = {}, trigger_params = {}} of datasets)
{
const tool_name = `web_data_${id}`;
let parameters = {};
Expand All @@ -890,7 +910,7 @@ for (let {dataset_id, id, description, inputs, defaults = {}, fixed_values = {}}
data = {...data, ...fixed_values};
let trigger_response = await axios({
url: 'https://api.brightdata.com/datasets/v3/trigger',
params: {dataset_id, include_errors: true},
params: {dataset_id, include_errors: true, ...trigger_params},
method: 'POST',
data: [data],
headers: api_headers(ctx.clientName, tool_name),
Expand Down
1 change: 1 addition & 0 deletions tool_groups.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ export const GROUPS = {
'web_data_tiktok_shop',
'web_data_tiktok_comments',
'web_data_x_posts',
'web_data_x_profile_posts',
'web_data_youtube_profiles',
'web_data_youtube_comments',
'web_data_youtube_videos',
Expand Down