# Rafid Intelligence Network (io.github.iabdullahm/rafid-agent-api): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.iabdullahm%2Frafid-agent-api/versions/latest)
- Connected to: https://api.rafidsystem.com/mcp
- Homepage: https://api.rafidsystem.com/tools?utm_source=official_mcp_registry&utm_medium=agent_directory&utm_campaign=rafid_agent_distribution&distribution_experiment_id=dist_2026_mcp_registry_01
- Repository: https://github.com/iabdullahm/rafid-agent-api
- Scoring rules: v2
- Tools: 74
- Average: 68.2 / 100 (Cloudy)
- Near-identical pairs: 4

This page shows how Rafid Intelligence Network (io.github.iabdullahm/rafid-agent-api)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 74 tools. Above 40, models choose less accurately.
- Major: 73 tools repeat the same note (32 words). Say it once in the server's instructions, and let each description say what only that tool does. The note does not count toward the tools' scores.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `extract_candidate_profile`: 54 / 100
  - Major: Arguments without a description: cv_text, document_url, language, target_schema_version.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `generate_job_profile`: 57 / 100
  - Major: Arguments without a description: job_description, job_title, language.
  - Minor: The description mentions none of its 3 or more arguments.
- `analyze_company_risk`: 59 / 100
  - Major: Arguments without a description: company, website, country, checks.
  - Minor: No `required` list, so every argument is optional.
- `cv_improve`: 59 / 100
  - Major: Arguments without a description: cv_text, target_job_description, candidate_profile, mode.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `find_companies`: 59 / 100
  - Major: Arguments without a description: query, industry, country, city, employeeMin, employeeMax, keywords, limit.
  - Minor: No `required` list, so every argument is optional.
- `procurement_vendor_shortlist`: 59 / 100
  - Major: Arguments without a description: suppliers, suppliers[].companyName, suppliers[].crNumber, suppliers[].website, suppliers[].email, suppliers[].phone, suppliers[].address, suppliers[].requiredProductOrService, csv, maxResults.
  - Minor: No `required` list, so every argument is optional.
- `due_diligence_oman_company`: 60 / 100
  - Major: Arguments without a description: companyId, transactionType, transactionValueOMR.
  - Minor: Required identifiers whose description does not say where the value comes from: companyId. Name the tool or the place that returns it, or models look it up first.
- `search_oman_company`: 60 / 100
  - Major: Arguments without a description: query, governorate, wilayat, industry, limit.
- `trade_risk_score`: 60 / 100
  - Major: Arguments without a description: trade, trade.symbol, trade.direction, trade.entryPrice, trade.stopLoss, trade.takeProfit, trade.takeProfits, trade.quantity, trade.volatilityPct, trade.liquidityScore, trade.strategy, trade.timeframe, trade.leverage, account, account.accountBalance, account.accountEquity, account.availableMargin, account.marginUsed, account.maxPositionPct, account.maxPortfolioRiskPct, account.maxDailyLossPct, account.maxConcurrentPositions, existingPositions, existingPositions[].positionId, existingPositions[].symbol, existingPositions[].strategy, existingPositions[].assetClass, existingPositions[].direction, existingPositions[].quantity, existingPositions[].entryPrice, existingPositions[].currentPrice, existingPositions[].marketValue, existingPositions[].stopLoss, existingPositions[].fees, existingPositions[].leverage, existingPositions[].margin, historicalRisk, historicalRisk.lossRate, historicalRisk.maxDrawdownPct, historicalRisk.averageRMultiple.
- `business_90_day_growth_plan`: 62 / 100
  - Major: Arguments without a description: language.
  - Minor: No `required` list, so every argument is optional.
- `business_idea_validate`: 62 / 100
  - Major: Arguments without a description: language, idea, customer, problem, solution, prospects, paymentEvidence.
- `business_risk_check`: 62 / 100
  - Major: Arguments without a description: language, business, signals.
- `cv_job_match`: 62 / 100
  - Major: Arguments without a description: cv_text, job_description, candidate_profile, job_profile.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `cv_score`: 62 / 100
  - Major: Arguments without a description: cv_text, candidate_profile, target_role.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `ideal_customer_profile`: 62 / 100
  - Major: Arguments without a description: language, business, ageRange, gender, governorate, city, incomeLevel, occupation, need, problem, buyingBehavior, onlineChannels, triggers, objections.
  - Minor: The description mentions none of its 3 or more arguments.
- `news_video_generate`: 62 / 100
  - Major: Arguments without a description: headline, summary, facts, sourceUrls, language, durationSeconds, aspectRatio, voice, subtitles, backgroundMusic.
  - Minor: The meaning of the boolean argument subtitles is unclear.
  - Minor: The meaning of the boolean argument backgroundMusic is unclear.
- `oman_business_launch_plan`: 62 / 100
  - Major: Arguments without a description: language.
  - Minor: No `required` list, so every argument is optional.
- `oman_supplier_check`: 62 / 100
  - Major: Arguments without a description: companyName, crNumber, website, email, phone, address, requiredProductOrService.
- `portfolio_exposure_check`: 62 / 100
  - Major: Arguments without a description: positions, positions[].positionId, positions[].symbol, positions[].strategy, positions[].assetClass, positions[].direction, positions[].quantity, positions[].entryPrice, positions[].currentPrice, positions[].marketValue, positions[].stopLoss, positions[].fees, positions[].leverage, positions[].margin, account, account.accountBalance, account.accountEquity, account.availableMargin, account.marginUsed, account.maxPositionPct, account.maxPortfolioRiskPct, account.maxDailyLossPct, account.maxConcurrentPositions, proposedPosition, proposedPosition.positionId, proposedPosition.symbol, proposedPosition.strategy, proposedPosition.assetClass, proposedPosition.direction, proposedPosition.quantity, proposedPosition.entryPrice, proposedPosition.currentPrice, proposedPosition.marketValue, proposedPosition.stopLoss, proposedPosition.fees, proposedPosition.leverage, proposedPosition.margin, correlations, correlations[].symbolA, correlations[].symbolB, correlations[].correlation.
- `research_company`: 62 / 100
  - Major: Arguments without a description: company, website, country, depth, focusAreas.
- `social_video_generate`: 62 / 100
  - Major: Arguments without a description: topic, script, platform, style, materialSource, language, durationSeconds, aspectRatio, voice, subtitles, backgroundMusic.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument subtitles is unclear.
  - Minor: The meaning of the boolean argument backgroundMusic is unclear.
- `trade_log_analysis`: 62 / 100
  - Major: Arguments without a description: records, accountEquity, duplicateTradeIdPolicy.
- `website_audit`: 62 / 100
  - Major: Arguments without a description: url, auditTypes, maxPages.
- `business_idea_generator`: 63 / 100
  - Major: Arguments without a description: language, problem, customer, solution, observedProblems, skills, city, availableHoursPerWeek, preferredBusinessModel, paymentEvidence, startupDifficulty.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `offer_builder`: 64 / 100
  - Major: Arguments without a description: language, product, customer, coreOutcome, bundle, bonuses, guarantee, deliveryPromise, genuineScarcity.
- `business_model_builder`: 65 / 100
  - Major: Arguments without a description: language, product, customer, problem, value, channels, pricing, costs, revenue, suppliersPartners, keyActivities.
  - Minor: The description mentions none of its 3 or more arguments.
- `business_validation_plan`: 65 / 100
  - Major: Arguments without a description: language, idea, customer, problem, solution, prospects, paymentEvidence.
  - Minor: The description mentions none of its 3 or more arguments.
- `candidate_shortlist_score`: 65 / 100
  - Major: Arguments without a description: job_profile, candidates, candidates[].candidate_id, candidates[].candidate_profile, max_candidates.
  - Minor: The description mentions none of its 3 or more arguments.
- `content_plan_generator`: 65 / 100
  - Major: Arguments without a description: language, business, icp, channels, postingFrequencyPerWeek, offer, days.
- `oman_small_business_guide`: 65 / 100
  - Major: Arguments without a description: language, question.
- `product_promo_video`: 65 / 100
  - Major: Arguments without a description: productName, description, features, callToAction, website, language, durationSeconds, aspectRatio, voice, subtitles, backgroundMusic.
  - Minor: The meaning of the boolean argument subtitles is unclear.
  - Minor: The meaning of the boolean argument backgroundMusic is unclear.
- `startup_readiness_score`: 65 / 100
  - Major: Arguments without a description: language, answers.
- `strategy_performance_analysis`: 65 / 100
  - Major: Arguments without a description: trades, trades[].tradeId, trades[].symbol, trades[].strategy, trades[].assetClass, trades[].direction, trades[].timeframe, trades[].source, trades[].marketRegime, trades[].confidence, trades[].entryTime, trades[].exitTime, trades[].entryPrice, trades[].exitPrice, trades[].quantity, trades[].fees, trades[].realizedPnl, trades[].stopLoss, trades[].takeProfit, trades[].takeProfits, trades[].status, trades[].session, trades[].executionStatus, trades[].exitReason, trades[].leverage, trades[].margin, trades[].rMultiple, trades[].maxFavorableExcursion, trades[].maxAdverseExcursion, initialEquity, accountEquity, riskPerTrade, period, period.from, period.to.
  - Minor: The description mentions none of its 3 or more arguments.
- `voice_lead_qualifier`: 65 / 100
  - Major: Arguments without a description: phoneNumber, language, maxDurationSeconds, context, criteria, criteria.requiredInterest, criteria.minimumBudget, criteria.currency, criteria.targetTimelineDays, criteria.decisionMakerRequired, safety, safety.consentNotice, safety.recording, safety.transcription, safety.timezone.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument criteria.requiredInterest is unclear.
  - Minor: The meaning of the boolean argument criteria.decisionMakerRequired is unclear.
  - Minor: The meaning of the boolean argument safety.recording is unclear.
  - Minor: The meaning of the boolean argument safety.transcription is unclear.
- `website_project_estimate`: 65 / 100
  - Major: Arguments without a description: projectType, pages, languages, features, designComplexity, integrations, ecommerce, deadlineDays, market, currency.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument ecommerce is unclear.
- `whatsapp_business_setup`: 65 / 100
  - Major: Arguments without a description: language, businessName, productOrService, location, delivery, paymentMethods.
  - Minor: The description mentions none of its 3 or more arguments.
- `final_business_plan_builder`: 66 / 100
  - Major: Arguments without a description: language, businessName, idea, customer, problem, product, competitors, differentiation, monthlySalesTarget, breakEvenUnits, marketingChannels, salesChannels, immediateNextStep.
  - Minor: The description mentions none of its 3 or more arguments.
- `flight_compare`: 66 / 100
  - Major: Arguments without a description: origin, destination, departureDate, returnDate, adults, children, cabinClass, currency, maxStops, limit, sort, preferences, preferences.priceWeight, preferences.durationWeight, preferences.stopsWeight, preferences.reliabilityWeight.
  - Minor: The description mentions none of its 3 or more arguments.
- `competitor_analysis`: 67 / 100
  - Major: Arguments without a description: language, competitors, competitors[].name, competitors[].product, competitors[].strengths, competitors[].weaknesses, competitors[].complaints, competitors[].positioning.
- `estimate_maintenance`: 67 / 100
  - Major: Arguments without a description: propertyValue, ageYears, units, assumptions, assumptions.annualRatePct, assumptions.additionalUnitCost.
- `first_10_customers_plan`: 67 / 100
  - Major: Arguments without a description: language, business, customer, offer, prospects.
- `oman_go_to_market_plan`: 67 / 100
  - Major: Arguments without a description: language, business, customer, problem, offer, channels.
- `oman_business_launch_advisor`: 68 / 100
  - Major: Arguments without a description: language, business, idea, customer, problem, solution, answers, offer.
- `shipping_cost_estimate`: 68 / 100
  - Major: Arguments without a description: origin, origin.country, origin.postalCode, origin.city, destination, destination.country, destination.postalCode, destination.city, shipment, shipment.weightKg, shipment.lengthCm, shipment.widthCm, shipment.heightCm, shipment.quantity, shipment.declaredValue, shipment.category, shippingMode, serviceLevel, currency.
- `property_investment_report`: 69 / 100
  - Major: Arguments without a description: property, property.governorate, property.wilayat, property.area, property.propertyType, property.bedrooms, property.bathrooms, property.sizeSqm, property.askingPriceOMR, property.furnished, property.optionalAnnualServiceChargeOMR, property.optionalAnnualMaintenanceOMR, financials, financials.propertyValue, financials.annualRent, financials.serviceCharge, financials.maintenanceCost, financials.maintenance, financials.vacancyRatePct, financials.otherAnnualCosts.
- `trip_cost_estimate`: 69 / 100
  - Major: Arguments without a description: origin, destination, departureDate, returnDate, adults, children, cabinClass, currency, maxStops, limit, sort, childAges, nationality, hotel, hotel.enabled, hotel.rooms, hotel.destination, strategy.
  - Minor: The meaning of the boolean argument hotel.enabled is unclear.
- `analyze_oman_company`: 70 / 100
  - Major: Arguments without a description: companyId, purpose.
  - Minor: Required identifiers whose description does not say where the value comes from: companyId. Name the tool or the place that returns it, or models look it up first.
- `company_due_diligence`: 71 / 100
  - Major: Arguments without a description: country, registrationNumber, purpose, depth, checks, checks.registry, checks.sanctions, checks.adverseMedia, checks.reputation, checks.businessRisk, lei.
  - Minor: The meaning of the boolean argument checks.registry is unclear.
  - Minor: The meaning of the boolean argument checks.sanctions is unclear.
  - Minor: The meaning of the boolean argument checks.adverseMedia is unclear.
  - Minor: The meaning of the boolean argument checks.reputation is unclear.
  - Minor: The meaning of the boolean argument checks.businessRisk is unclear.
- `oman_business_plan_generator`: 71 / 100
  - Major: Arguments without a description: language, business, idea, customer, problem, solution, answers, offer, businessName, channels.
- `portfolio_screen`: 71 / 100
  - Major: Arguments without a description: properties, properties[].propertyValue, properties[].annualRent, properties[].serviceCharge, properties[].maintenanceCost, properties[].vacancyRatePct, properties[].otherAnnualCosts, properties[].name.
- `sales_response_builder`: 71 / 100
  - Major: Arguments without a description: language, case, business, product, customerMessage.
  - Minor: The description mentions none of its 3 or more arguments.
- `analyze_oman_property`: 72 / 100
  - Major: Arguments without a description: governorate, wilayat, area, propertyType, bedrooms, bathrooms, sizeSqm, askingPriceOMR, furnished, optionalAnnualServiceChargeOMR, optionalAnnualMaintenanceOMR.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_oman_company_profile`: 72 / 100
  - Major: Arguments without a description: companyId.
  - Minor: Required identifiers whose description does not say where the value comes from: companyId. Name the tool or the place that returns it, or models look it up first.
- `hotel_search`: 72 / 100
  - Major: Arguments without a description: destination, checkIn, checkOut, adults, children, childAges, currency, nationality, limit.
  - Minor: The description mentions none of its 3 or more arguments.
- `supplier_due_diligence_report`: 72 / 100
  - Major: Arguments without a description: companyName, crNumber, website, email, phone, address, requiredProductOrService.
- `website_download`: 72 / 100
  - Major: Arguments without a description: url, maxDepth, includeAssets, convertLinks, adjustExtensions, sameDomainOnly, maxSizeMb, maxFiles, timeoutSeconds, output.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument includeAssets is unclear.
  - Minor: The meaning of the boolean argument convertLinks is unclear.
  - Minor: The meaning of the boolean argument adjustExtensions is unclear.
  - Minor: The meaning of the boolean argument sameDomainOnly is unclear.
- `flight_search`: 73 / 100
  - Major: Arguments without a description: origin, destination, departureDate, returnDate, adults, children, cabinClass, currency, maxStops, limit, sort.
  - Minor: The description mentions none of its 3 or more arguments.
- `company_risk_batch`: 74 / 100
  - Minor: Arguments without a description: companies, companies[].includeNews, companies[].includeDigitalSignals, csv.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument companies[].includeNews is unclear.
  - Minor: The meaning of the boolean argument companies[].includeDigitalSignals is unclear.
- `compare_properties`: 74 / 100
  - Major: Arguments without a description: properties, properties[].propertyValue, properties[].annualRent, properties[].serviceCharge, properties[].maintenanceCost, properties[].vacancyRatePct, properties[].otherAnnualCosts, properties[].name.
- `ai_call_agent`: 75 / 100
  - Major: Arguments without a description: phoneNumber, objective, language, maxDurationSeconds, context, safety, safety.consentNotice, safety.recording, safety.transcription, safety.timezone.
  - Minor: The meaning of the boolean argument safety.recording is unclear.
  - Minor: The meaning of the boolean argument safety.transcription is unclear.
- `appointment_call_agent`: 75 / 100
  - Major: Arguments without a description: phoneNumber, action, appointmentType, availableSlots, timezone, language, maxDurationSeconds, context, safety, safety.consentNotice, safety.recording, safety.transcription, safety.timezone.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument safety.recording is unclear.
  - Minor: The meaning of the boolean argument safety.transcription is unclear.
- `monthly_business_financial_report`: 75 / 100
  - Minor: Arguments without a description: language, reinvestmentPercent, reservePercent.
  - Minor: The description mentions none of its 3 or more arguments.
- `preview_capability`: 75 / 100
- `business_profitability_analysis`: 76 / 100
  - Minor: Arguments without a description: language, unitsSold.
  - Minor: The description mentions none of its 3 or more arguments.
- `startup_cost_estimate`: 76 / 100
  - Minor: Arguments without a description: language, reservePercent, runwayMonths.
  - Minor: The description mentions none of its 3 or more arguments.
- `analyze_property`: 77 / 100
  - Major: Arguments without a description: propertyValue, annualRent, serviceCharge, maintenanceCost, vacancyRatePct, otherAnnualCosts.
  - Minor: The description mentions none of its 3 or more arguments.
- `company_risk_report`: 79 / 100
  - Minor: Arguments without a description: includeNews, includeDigitalSignals.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument includeNews is unclear.
  - Minor: The meaning of the boolean argument includeDigitalSignals is unclear.
- `product_pricing_calculator`: 79 / 100
  - Minor: Arguments without a description: language, desiredMarginPercent, desiredMarkupPercent.
  - Minor: The description mentions none of its 3 or more arguments.
- `break_even_calculator`: 80 / 100
  - Minor: Arguments without a description: language.
  - Minor: The description mentions none of its 3 or more arguments.
- `company_reputation_check`: 82 / 100
- `document_facts_extract`: 84 / 100
  - Minor: No `required` list, so every argument is optional.
- `invoice_anomaly_check`: 85 / 100
  - Major: Arguments without a description: invoice.invoiceNumber, invoice.supplierName, invoice.invoiceDate, invoice.dueDate, invoice.currency, invoice.bankAccount, invoice.poNumber, invoice.contractId, invoice.lineItems, invoice.lineItems[].description, invoice.lineItems[].quantity, invoice.lineItems[].unitPrice, historicalInvoices[].invoiceId, historicalInvoices[].invoiceNumber, historicalInvoices[].supplierName, historicalInvoices[].supplierId, historicalInvoices[].invoiceDate, historicalInvoices[].dueDate, historicalInvoices[].currency, historicalInvoices[].subtotal, historicalInvoices[].total, historicalInvoices[].bankAccount, historicalInvoices[].poNumber, historicalInvoices[].lineItems, historicalInvoices[].lineItems[].description, historicalInvoices[].lineItems[].sku, historicalInvoices[].lineItems[].quantity, historicalInvoices[].lineItems[].unitPrice, historicalInvoices[].lineItems[].total, supplierProfile.supplierId, supplierProfile.supplierName, supplierProfile.aliases, supplierProfile.bankAccounts[].account, supplierProfile.status, supplierProfile.country, purchaseOrder.poNumber, purchaseOrder.supplierId, purchaseOrder.supplierName, purchaseOrder.currency, purchaseOrder.totalAmount, purchaseOrder.issueDate, purchaseOrder.status, purchaseOrder.lineItems, purchaseOrder.lineItems[].description, purchaseOrder.lineItems[].sku, purchaseOrder.lineItems[].quantity, purchaseOrder.lineItems[].unitPrice, contract.contractId, contract.supplierId, contract.supplierName, contract.currency, contract.startDate, contract.endDate, approvalContext, paymentHistory[].invoiceNumber, paymentHistory[].supplierId, paymentHistory[].supplierName, paymentHistory[].paymentDate, paymentHistory[].amount, paymentHistory[].currency, paymentHistory[].bankAccount, options.
- `business_risk_score`: 92 / 100
- `vehicle_value_estimate`: 92 / 100

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
