Skip to main content
Glama
get_notes.ts5.23 kB
import { Tool } from "@modelcontextprotocol/sdk/types.js"; import productboardClient from "../productboard_client.js"; const getNotesTool: Tool = { "name": "get_notes", "description": "Returns a list of all notes", "inputSchema": { "type": "object", "properties": { "last": { "type": "string", "description": "Return only notes created since given span of months (m), days (s), or hours (h). E.g. 6m | 10d | 24h | 1h. Cannot be combined with createdFrom, createdTo, dateFrom, or dateTo" }, "createdFrom": { "type": "string", "format": "date", "description": "Return only notes created since given date. Cannot be combined with last" }, "createdTo": { "type": "string", "format": "date", "description": "Return only notes created before or equal to the given date. Cannot be combined with last" }, "updatedFrom": { "type": "string", "format": "date", "description": "Return only notes updated since given date" }, "updatedTo": { "type": "string", "format": "date", "description": "Return only notes updated before or equal to the given date" }, "term": { "type": "string", "description": "Return only notes by fulltext search" }, "featureId": { "type": "string", "description": "Return only notes for specific feature ID or its descendants" }, "companyId": { "type": "string", "description": "Return only notes for specific company ID" }, "ownerEmail": { "type": "string", "description": "Return only notes owned by a specific owner email" }, "source": { "type": "string", "description": "Return only notes from a specific source origin. This is the unique string identifying the external system from which the data came" }, "anyTag": { "type": "string", "description": "Return only notes that have been assigned any of the tags in the array. Cannot be combined with allTags" }, "allTags": { "type": "string", "description": "Return only notes that have been assigned all of the tags in the array. Cannot be combined with anyTag" }, "pageLimit": { "type": "number", "description": "Page limit" }, "pageCursor": { "type": "string", "description": "Page cursor to get next page of results" } } } } interface GetNotesRequest { last?: string; createdFrom?: string; createdTo?: string; updatedFrom?: string; updatedTo?: string; term?: string; featureId?: string; companyId?: string; ownerEmail?: string; source?: string; anyTag?: string; allTags?: string; pageLimit?: number; pageCursor?: string; } const getNotes = async (request: GetNotesRequest): Promise<any> => { // Validate mutually exclusive parameters if (request.last && (request.createdFrom || request.createdTo)) { throw new Error("'last' parameter cannot be combined with 'createdFrom' or 'createdTo'"); } if (request.anyTag && request.allTags) { throw new Error("'anyTag' cannot be combined with 'allTags'"); } const params = new URLSearchParams() if (request.last) { params.append('last', request.last) } if (request.createdFrom) { params.append('createdFrom', request.createdFrom) } if (request.createdTo) { params.append('createdTo', request.createdTo) } if (request.updatedFrom) { params.append('updatedFrom', request.updatedFrom) } if (request.updatedTo) { params.append('updatedTo', request.updatedTo) } if (request.term) { params.append('term', request.term) } if (request.featureId) { params.append('featureId', request.featureId) } if (request.companyId) { params.append('companyId', request.companyId) } if (request.ownerEmail) { params.append('ownerEmail', request.ownerEmail) } if (request.source) { params.append('source', request.source) } if (request.anyTag) { params.append('anyTag', request.anyTag) } if (request.allTags) { params.append('allTags', request.allTags) } if (request.pageLimit) { params.append('pageLimit', request.pageLimit.toString()) } if (request.pageCursor) { params.append('pageCursor', request.pageCursor) } const queryString = params.toString() const endpoint = `/notes${queryString ? `?${queryString}` : ''}` return productboardClient.get(endpoint) } export { getNotesTool, GetNotesRequest, getNotes }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kenjihikmatullah/productboard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server