NLP Tools - Sentiment, NER, Toxicity & Language Detection
Server Details
Toxicity, sentiment, NER, PII detection, and language identification tools
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- fasuizu-br/speech-ai-examples
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
6 toolsanalyze_sentimentAnalyze SentimentARead-onlyIdempotentInspect
Analyze text sentiment.
Returns positive/negative classification with confidence scores. DistilBERT-based with sub-10ms latency. Multiple domain-specific model variants available.
Args: text: Text to analyze for sentiment (positive/negative). model: Model variant -- 'general' (default), 'financial', 'twitter'.
Returns: dict with keys: - label (str): 'positive' or 'negative' - score (float 0-1): Confidence score for the predicted label - scores (dict): All label scores (positive, negative)
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze for sentiment (positive/negative) | |
| model | No | Model variant: 'general' (default), 'financial', 'twitter' | general |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent safety, but the description adds valuable behavioral context: DistilBERT architecture, sub-10ms latency performance characteristics, and detailed return value structure (label, score, scores dict) which compensates for the missing output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring structure (Args/Returns) is logical and readable. Every section earns its place: the opening defines purpose, the middle provides performance context, and the Returns section documents output structure. Slightly verbose format but appropriate for the lack of output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description comprehensively documents return values (dict structure with keys and types). Parameters are 100% covered by schema, and annotations cover behavioral hints. The description successfully compensates for missing structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already fully documents both parameters. The Args section in the description essentially mirrors the schema descriptions without adding additional semantic context (e.g., example inputs, format constraints beyond maxLength), meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Analyze') and resource ('text sentiment'), specifying positive/negative classification. However, it lacks explicit differentiation from the sibling 'analyze_toxicity' tool, which also performs text classification—users might benefit from explicit guidance distinguishing sentiment analysis from toxicity detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance through the 'model' parameter variants ('general', 'financial', 'twitter'), suggesting when to use specific domains. However, it lacks explicit 'when to use vs. alternatives' guidance comparing it to siblings like 'analyze_toxicity' or 'detect_language'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_toxicityAnalyze ToxicityARead-onlyIdempotentInspect
Analyze text for toxic content.
Returns scores for 6 categories: toxic, severe_toxic, obscene, threat, insult, identity_hate. Each score is 0.0-1.0. BERT-based classifier with sub-15ms latency on GPU.
Args: text: Text to analyze for toxicity (hate speech, insults, threats).
Returns: dict with keys: - toxic (float 0-1): Overall toxicity score - severe_toxic (float 0-1): Severe toxicity score - obscene (float 0-1): Obscenity score - threat (float 0-1): Threat score - insult (float 0-1): Insult score - identity_hate (float 0-1): Identity-based hate score - is_toxic (bool): Whether text exceeds toxicity threshold
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze for toxicity (hate speech, insults, threats) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Excellent addition of implementation details beyond the safety annotations: mentions BERT-based classifier, sub-15ms GPU latency, and explains the specific 6-category scoring system plus the boolean threshold flag. These operational characteristics help users understand model behavior, latency expectations, and interpretation logic that raw annotations don't cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections: purpose statement upfront, implementation details, Args/Returns documentation. The Returns dict is verbose but justified by absence of formal output schema. Every element serves a purpose, though the docstring-style formatting (Args/Returns) is slightly redundant given the schema exists for input.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive despite lacking formal output schema. The description fully documents all 6 toxicity categories, score ranges (0.0-1.0), the boolean threshold flag, and technical constraints (maxLength 100000 is in schema, latency mentioned in text). Sufficient for an AI agent to understand both input requirements and response interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage for the single 'text' parameter, the baseline is 3. The description's Args section essentially duplicates the schema description ('Text to analyze for toxicity...') without adding syntax clarifications, format constraints, or usage examples beyond what's in the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with specific verb+resource ('Analyze text for toxic content'), then immediately distinguishes from sibling analyze_sentiment by detailing 6 specific toxicity categories (toxic, severe_toxic, obscene, threat, insult, identity_hate) which clearly delineate it from general sentiment analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to prefer this over analyze_sentiment, detect_pii, or other NLP siblings. The 6 category descriptions provide implicit usage context (detecting hate speech vs generic sentiment), but lacks explicit 'When to use' or 'See also analyze_sentiment for...' cross-references that would clarify tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_nlp_serviceCheck NLP ServiceARead-onlyIdempotentInspect
Check health status of NLP API services and loaded models.
Returns: dict with keys: - status (str): 'healthy' or error state - models (dict): Loaded model status per capability - version (str): API version
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety profile (readOnly, idempotent), but description adds valuable return structure documentation (dict keys, types, and meaning of 'healthy' status) that annotations don't provide. Misses details on caching behavior or timeout characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly efficient two-part structure: purpose stated immediately, followed by structured return documentation. No redundancy or wasted words; appropriate length for a simple health check endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Full coverage appropriate for tool complexity: zero parameters with 100% schema coverage, rich annotations provided, and return values documented in description compensating for lack of structured output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present; description correctly implies no input needed. Baseline 4 applies for 0-param tools per scoring rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Check' + clear resource 'NLP API services and loaded models'. Effectively distinguishes from analytical siblings (analyze_sentiment, detect_language, etc.) by identifying this as an operational health check rather than text processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage as a diagnostic/health check is clear from context, but lacks explicit guidance such as 'Call before using analysis tools to verify availability' or prerequisites. No explicit when-not or alternative tools mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_languageDetect LanguageARead-onlyIdempotentInspect
Detect the language of text.
Supports 176 languages using fastText. Sub-1ms inference latency. Returns ISO 639-1 codes with confidence scores.
Args: text: Text to identify the language of. top_k: Number of top language predictions to return (default: 3).
Returns: dict with keys: - language (str): Top predicted language ISO 639-1 code - confidence (float 0-1): Confidence for top prediction - predictions (list): Top-k predictions, each with: - language (str): ISO 639-1 code - confidence (float 0-1): Prediction confidence
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to identify the language of | |
| top_k | No | Number of top language predictions to return |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only/idempotent/non-destructive nature. The description adds valuable behavioral context beyond this: implementation detail (fastText), performance characteristics (sub-1ms), output standards (ISO 639-1 codes), and detailed return structure. It does not contradict annotations and adds significant technical context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary line followed by technical specs, then Args/Returns sections. Every sentence delivers value: the opening establishes purpose, fastText/latency establish performance, and the Returns section compensates for missing output schema with precise type documentation. No filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the lack of a formal output schema, the description provides exhaustive documentation of the return structure (dict keys, types, ranges, nested list items). Combined with good annotations and complete input schema coverage, this provides full contextual information needed for an agent to invoke the tool and handle its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is appropriately set at 3. The description repeats the parameter definitions from the schema with minimal additional semantic depth (only noting the default value for top_k which is already in the schema). No additional format guidance, examples, or constraints are provided beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific action ('Detect the language of text') combining verb and resource. It clearly differentiates from sibling tools like analyze_sentiment or detect_pii by focusing specifically on language identification rather than sentiment, toxicity, or entity extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides technical capabilities (176 languages, fastText, sub-1ms latency) that implicitly suggest appropriate use cases, but lacks explicit when-to-use guidance or distinctions from other text analysis tools in the suite. It does not state prerequisites or when to prefer alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_piiDetect PIIARead-onlyIdempotentInspect
Detect personally identifiable information (PII) in text.
Finds emails, phone numbers, SSNs, credit cards, IP addresses, and person names. Optionally returns redacted text with PII replaced by type labels (e.g. [EMAIL], [PHONE]). BERT-NER + regex ensemble.
Args: text: Text to scan for personally identifiable information. redact: If true, return redacted text with PII replaced by [TYPE].
Returns: dict with keys: - pii_found (list): Detected PII items, each containing: - text (str): The PII value found - type (str): PII type (EMAIL, PHONE, SSN, CREDIT_CARD, IP, PERSON) - start (int): Character offset start - end (int): Character offset end - score (float 0-1): Detection confidence - count (int): Total PII items found - redacted_text (str|null): Text with PII replaced (when redact=true) - has_pii (bool): Whether any PII was detected
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to scan for personally identifiable information | |
| redact | No | If true, return redacted text with PII replaced by [TYPE] |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety profile (readOnly/idempotent), but description adds significant behavioral context: specific detection methodology (BERT-NER + regex ensemble), exact PII type taxonomy, and comprehensive return structure documentation that compensates for missing output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections for description, Args, and Returns. The detailed Returns section is justified given lack of output schema. Minor redundancy between Args section and input schema, but overall efficient for the complexity covered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage of return values (detailed dict structure with types and ranges) fully compensates for absence of structured output schema. Parameters fully covered by schema. Implementation details and confidence scores provide complete operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description briefly mentions parameters in Args section largely mirroring schema text, but adds value by clarifying the redaction output format ([TYPE] placeholders) which bridges to the return documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb+resource ('Detect personally identifiable information...'), lists concrete PII types (emails, phone numbers, SSNs, etc.), and distinguishes scope from sibling extract_entities by focusing specifically on sensitive personal data rather than general entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that this is for PII detection and explains the redaction use case, but lacks explicit guidance on when to select this over sibling extract_entities for entity-related tasks. Usage is implied by the specific PII focus but not explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_entitiesExtract EntitiesARead-onlyIdempotentInspect
Extract named entities (NER) from text.
Identifies persons, organizations, locations, and miscellaneous entities with span offsets and confidence scores. BERT-NER based with sub-50ms latency.
Args: text: Text to extract named entities from.
Returns: dict with keys: - entities (list): Detected entities, each containing: - text (str): Entity text - label (str): Entity type (PER, ORG, LOC, MISC) - start (int): Character offset start - end (int): Character offset end - score (float 0-1): Confidence score - count (int): Total number of entities found
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to extract named entities from (persons, organizations, locations) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety profile (readOnly, idempotent, non-destructive). Description adds valuable implementation context ('BERT-NER based') and performance characteristics ('sub-50ms latency'). Critically, it documents the complete return structure (entities list with offsets, labels, scores) compensating for the absence of a structured output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose statement followed by implementation details. The Returns section is valuable given no output schema exists, though the Args section is redundant with structured schema. Information density is high with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Excellent completeness for a single-parameter tool. Provides detailed return value documentation in description text to compensate for missing output schema, including type definitions and value ranges (e.g., 'score (float 0-1)'). Behavioral annotations are present and clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (single 'text' parameter). The Args section restates the schema description without adding syntax details, format constraints, or usage examples. Baseline 3 appropriate given schema completeness per calibration guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb ('Extract') and resource ('named entities/NER'). Details the specific entity types handled (PER, ORG, LOC, MISC) and output format (span offsets, confidence scores), clearly distinguishing it from sentiment analysis, toxicity detection, and language detection siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage domain through NER capability description but lacks explicit 'when to use' guidance or differentiation from detect_pii, which may overlap in functionality. No alternatives or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!