Skip to main content
Glama
ethancod1ng

RedNote MCP Server

by ethancod1ng

rednote_analyze_content

Analyze content text to identify sentiment, extract keywords, and categorize information using multiple analysis types.

Instructions

分析内容

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes内容文本
analysis_typeNo分析类型all

Implementation Reference

  • The primary handler function for the 'rednote_analyze_content' tool. It validates input parameters and calls the RedNoteApi to perform the content analysis, then formats the response.
    async analyzeContent(params: any) { try { validateNotEmpty(params.content, 'content'); validateString(params.content, 'content'); if (params.analysis_type) { validateEnum(params.analysis_type, 'analysis_type', ['sentiment', 'keywords', 'category', 'all']); } logger.info('Executing analyze content tool', { contentLength: params.content.length, analysisType: params.analysis_type }); const result = await this.api.analyzeContent(params.content, params.analysis_type || 'all'); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } catch (error) { logger.error('Error in analyzeContent tool:', error); return { content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}` }], isError: true }; } }
  • The input schema definition for the 'rednote_analyze_content' tool, including properties for content and analysis_type.
    rednote_analyze_content: { name: 'rednote_analyze_content', description: '分析内容', inputSchema: { type: 'object', properties: { content: { type: 'string', description: '内容文本' }, analysis_type: { type: 'string', enum: ['sentiment', 'keywords', 'category', 'all'], description: '分析类型', default: 'all' } }, required: ['content'] } }
  • src/server.ts:73-74 (registration)
    Switch case in the tool request handler that registers and dispatches calls to the 'rednote_analyze_content' tool handler.
    case 'rednote_analyze_content': return await this.analysisTools.analyzeContent(params);
  • Core implementation of content analysis logic, generating mock results for sentiment, keywords, and category based on the specified analysis_type.
    async analyzeContent(content: string, analysisType: string = 'all'): Promise<AnalysisResult> { logger.info('Analyzing content', { contentLength: content.length, analysisType }); try { const result: AnalysisResult = {}; if (analysisType === 'sentiment' || analysisType === 'all') { result.sentiment = { score: Math.random() * 2 - 1, label: Math.random() > 0.5 ? 'positive' : 'negative', confidence: Math.random() }; } if (analysisType === 'keywords' || analysisType === 'all') { result.keywords = this.extractKeywords(); } if (analysisType === 'category' || analysisType === 'all') { result.category = this.predictCategory(); } return result; } catch (error) { logger.error('Error analyzing content:', error); throw new Error(`Failed to analyze content: ${error}`); } }
  • Helper functions used by analyzeContent for extracting keywords and predicting category in a mock manner.
    private extractKeywords(): string[] { const commonWords = ['美食', '分享', '推荐', '好吃', '简单', '健康', '生活', '时尚', '美丽']; return commonWords.filter(() => Math.random() > 0.5).slice(0, 5); } private predictCategory(): string { const categories = ['美食', '时尚', '旅行', '生活', '美妆', '健身']; return categories[Math.floor(Math.random() * categories.length)]; }

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

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