Skip to content

Commit 3cd6964

Browse files
committed
fix: invalid url
1 parent eea6293 commit 3cd6964

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/mcp-servers/datasets/tools.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ const getOrigin = (headers: IsomorphicHeaders | undefined): string => {
2929
return origin
3030
}
3131
}
32-
const buildAxiosOptions = (headers: IsomorphicHeaders | undefined): AxiosRequestConfig => ({
33-
baseURL: getOrigin(headers) + '/data-fair/api/v1',
32+
const buildAxiosOptions = (headers: IsomorphicHeaders | undefined, defineBaseURL?: boolean): AxiosRequestConfig => ({
33+
baseURL: defineBaseURL ? getOrigin(headers) + '/data-fair/api/v1' : undefined,
3434
headers: {
3535
'User-Agent': '@data-fair/mcp (Datasets)'
3636
}
@@ -76,7 +76,7 @@ const registerTools = (server: McpServer) => {
7676
// Fetch datasets matching the search criteria - optimized for discovery
7777
const fetchedData = (await axios.get(
7878
`/catalog/datasets?q=${params.query}&size=10&select=id,title,description`,
79-
buildAxiosOptions(extra.requestInfo?.headers)
79+
buildAxiosOptions(extra.requestInfo?.headers, true)
8080
)).data
8181

8282
// Format the fetched data into a structured content object
@@ -163,7 +163,7 @@ const registerTools = (server: McpServer) => {
163163
// Fetch detailed dataset information
164164
const fetchedData = (await axios.get(
165165
`/datasets/${params.datasetId}`,
166-
buildAxiosOptions(extra.requestInfo?.headers)
166+
buildAxiosOptions(extra.requestInfo?.headers, true)
167167
)).data
168168

169169
// Format the fetched data
@@ -211,7 +211,7 @@ const registerTools = (server: McpServer) => {
211211
// Add sample lines if available
212212
const sampleLines = (await axios.get(
213213
`/datasets/${params.datasetId}/lines?size=3`,
214-
buildAxiosOptions(extra.requestInfo?.headers)
214+
buildAxiosOptions(extra.requestInfo?.headers, true)
215215
)).data.results
216216
dataset.sampleLines = sampleLines
217217

@@ -297,10 +297,11 @@ const registerTools = (server: McpServer) => {
297297

298298
fetchParams.append('size', '10')
299299

300-
const fetchUrl = new URL(`datasets/${params.datasetId}/lines`)
300+
const baseUrl = getOrigin(extra.requestInfo?.headers)
301+
const fetchUrl = new URL(`/data-fair/api/v1/datasets/${params.datasetId}/lines`, baseUrl)
301302
fetchUrl.search = fetchParams.toString()
302303

303-
const filteredViewUrlObj = new URL(`${getOrigin(extra.requestInfo?.headers)}/data-fair/next-ui/embed/dataset/${params.datasetId}/table`)
304+
const filteredViewUrlObj = new URL(`/data-fair/next-ui/embed/dataset/${params.datasetId}/table`, baseUrl)
304305
filteredViewUrlObj.search = viewParams.toString()
305306

306307
// Fetch detailed dataset information
@@ -393,7 +394,7 @@ const registerTools = (server: McpServer) => {
393394
throw new Error('You can aggregate by at most 3 columns')
394395
}
395396

396-
const fetchUrl = new URL(`datasets/${params.datasetId}/values_agg`)
397+
const fetchUrl = new URL(`/data-fair/api/v1/datasets/${params.datasetId}/values_agg`, getOrigin(extra.requestInfo?.headers))
397398

398399
// Build common search parameters for both fetch and source URLs
399400
const aggsParams = new URLSearchParams()

0 commit comments

Comments
 (0)