Skip to main content
Glama

RedNote MCP Server

by ethancod1ng
content.ts2.76 kB
import { RedNoteApi } from '../api/rednote.js'; import { validateNotEmpty, validateString, validateNumber } from '../utils/validators.js'; import logger from '../utils/logger.js'; export class ContentTools { private api: RedNoteApi; constructor() { this.api = new RedNoteApi(); } async getNote(params: any) { try { validateNotEmpty(params.note_id, 'note_id'); validateString(params.note_id, 'note_id'); logger.info('Executing get note tool', { noteId: params.note_id }); const result = await this.api.getNote(params.note_id, params.include_comments || false); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { logger.error('Error in getNote tool:', error); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } } async getUserNotes(params: any) { try { validateNotEmpty(params.user_id, 'user_id'); validateString(params.user_id, 'user_id'); if (params.limit) { validateNumber(params.limit, 'limit', 1, 100); } logger.info('Executing get user notes tool', { userId: params.user_id, limit: params.limit, cursor: params.cursor }); const result = await this.api.getUserNotes( params.user_id, params.limit || 20, params.cursor ); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { logger.error('Error in getUserNotes tool:', error); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } } async getTrendingTopics(params: any) { try { if (params.limit) { validateNumber(params.limit, 'limit', 1, 100); } logger.info('Executing get trending topics tool', { category: params.category, limit: params.limit }); const result = await this.api.getTrendingTopics(params.category, params.limit || 20); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { logger.error('Error in getTrendingTopics tool:', error); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } } }

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/ethancod1ng/rednote-mcp-server'

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