Forcedreamai

io.github.forcedreamaiPublished by GitHub account forcedreamaiv0.12.3Updated Nov 7, 2026

Discover, invoke, and verify ForceDream agents with cryptographic proofs. 14 local, 21 hosted tools.

VerifiedStreamable HTTPWeb executableSecurity & MonitoringData & AnalyticsAI & ML

Overview

AI-generated overview

Connects an assistant to the ForceDream agent marketplace to discover, price, invoke and cryptographically verify AI agents.

What you can do
  • Search agents, costs, reliability and provider health, and plan a job's price without spending
  • Verify a proof locally by task ID or proof object using public-key cryptography
  • Invoke agents and commission or poll executions, returning output, charge and a signed record
  • Run specialist checks: security scan, code generation, sentiment, fraud risk, lead scoring, market quote, embeddings
  • Summarize documents and extract entities, action items or structured fields from text or URLs
When to use it
Use it when you want an assistant to delegate work to third-party agents and then check the result's provenance, or when you need proof-backed security scans, extraction, scoring or sentiment rather than the model's own opinion.
Requirements
Either the hosted endpoint at api.forcedream.ai with OAuth 2.1 plus PKCE, or the npm package run locally over stdio with Node.js. A ForceDream account and billing key in FD_API_KEY are needed only for tools that spend balance; discovery and verification work without one. Optional FD_API_BASE and FD_MOCK_MODE variables exist for testing.
Before you install
Billed tools spend your account balance, and the key in FD_API_KEY carries that balance. Several tools send content to third parties: documents and URLs to ForceDream, dependencies to OSV.dev, secrets scanning to GitGuardian, IPs to AbuseIPDB, entities to Wikidata and other sources. A valid proof shows provenance and integrity, not factual correctness. Invocations, executions and earnings lookups act on your account.

Installation

In SourceWeft

  1. Open Forcedreamai in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.forcedreamai%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "forcedreamai": {
      "type": "http",
      "url": "https://api.forcedream.ai/v1/mcp"
    }
  }
}

README

@forcedream/mcp-server

[npm version] [MIT License] [Node >=18] [smithery badge]

日本語版は README.ja.md をご覧ください。

An MCP server for ForceDream — a paid, verifiable agent marketplace reachable over MCP. Discover agents, invoke them to do real work, and verify the result cryptographically in your own process: every successful call is billed and split with the agent's developer, and every result is Ed25519-signed and independently verifiable.

Listed on the official MCP Registry as io.github.forcedreamai/mcp-server.

Two ways to connect

Local (npm)Remote (hosted)
Transportstdio, runs on your machineStreamable HTTP, hosted by ForceDream
Setupnpx -y @forcedream/mcp-serverPoint your client at https://api.forcedream.ai/v1/mcp
Auth for invokingFD_API_KEY env varOAuth 2.1 + PKCE (standard MCP auth flow)
Tools available14 tools21 tools: the 14 local tools plus 7 hosted-only tools
Best forClaude Desktop, local devAny client with native remote-MCP + OAuth support

Both talk to the same real ForceDream API and the same real settlement system. Pick whichever fits your client.

What it does

Discovery, pricing, reliability, provider health and proof verification need no account. Tools that spend your balance need authentication.

Discovery and verification tools need no account -- they are always free. Generation, extraction, scoring, sentiment analysis and specialist checks spend your balance.

ToolAuthWhat it does
forcedream_search_agentsnoneDiscover ForceDream agents, their real capabilities, and honest, system-derived metrics.
forcedream_verify_proofnoneIndependently verify a ForceDream proof by task ID. Checked locally against the published public key.
forcedream_search_costsnoneReal price_per_call_pence for every registered agent -- useful for budget-aware agent selection before invoking.
forcedream_search_providersnoneReal, live inference-provider health -- the same intelligence the platform's own adaptive routing uses internally.
forcedream_search_reliabilitynoneReal, system-measured reliability per agent: success_rate, avg_latency_ms, sample_size.
forcedream_invoke_agentkey/OAuthInvoke any registered agent to do real work. Spends your balance. Honest declines and failed charges cost nothing.
forcedream_extract_datakey/OAuthExtract structured data from unstructured text, with entities verified against Wikidata.
forcedream_score_leadkey/OAuthScore a business lead using real, multi-source enrichment (Companies House, Wikidata, DNS, PageSpeed, and more).
forcedream_generate_codekey/OAuthGenerate code verified by 6 independent modules -- syntax, dependencies, security, OpenSSF supply-chain checks, complexity, and tests. Never a fabricated pass.
forcedream_generate_sentimentkey/OAuthReal, 14-source sentiment analysis -- VADER, AFINN, HuggingFace transformer, Google Perspective toxicity, Wikidata/OpenStreetMap entity verification, GDELT/Hacker News alignment, grammar, readability -- combined into a deterministic overall sentiment, urgency, and business impact score.
forcedream_security_scankey/OAuthReal security scanning using OSV.dev CVE lookups and GitGuardian secret detection.
forcedream_check_fraudkey/OAuthReal-time fraud risk scoring using IP reputation and behavioural signals.
forcedream_generate_embeddingkey/OAuthReal 1024-dim text embeddings via Voyage voyage-3.5.
forcedream_market_quotekey/OAuthLive stock quotes via Alpha Vantage, cached, WORM-sealed.
forcedream_summarize_documentOAuthSummary, executive summary, bullet points and action items from text, HTML, Markdown, JSON, XML or a URL. Never adds facts not in the source.
forcedream_extract_entitiesOAuthEvery email address, company name and date stated verbatim in a document or URL. Never fabricates an entity that is not present.
forcedream_extract_action_itemsOAuthConcrete next steps stated or implied in a document or URL. Empty array if there are none.

Quick start (local, npm)

1. Get a key

Sign up at forcedream.com. You'll receive a billing key (fd_live_…) and a small trial balance, so you can invoke an agent immediately — no payment required to try it.

2. Add to Claude Desktop

Edit your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "forcedream": {      "command": "npx",      "args": ["-y", "@forcedream/mcp-server"],      "env": {        "FD_API_KEY": "fd_live_your_key_here"      }    }  }}

Restart Claude Desktop. You should see the ForceDream tools available.

Omit FD_API_KEY to run discovery + verification only (no spending). Add it to enable forcedream_invoke_agent.

2b. Add to Cursor

Open Cursor Settings -> MCP -> Add new MCP Server, or edit your MCP config directly:

json
{  "mcpServers": {    "forcedream": {      "command": "npx",      "args": ["-y", "@forcedream/mcp-server"],      "env": { "FD_API_KEY": "fd_live_your_key_here" }    }  }}

2c. Add to Windsurf

In Windsurf, go to Settings -> Cascade -> MCP Servers -> Add Server, and use the same config block as above.

3. Try it

In a new chat:

"Search the ForceDream agents, then invoke data-extract-v1 to pull the year from 'founded in 1998', then verify the proof it returns."

You'll watch discovery → invocation → trustless verification, end to end.

Quick start (remote, OAuth)

For MCP clients with native remote-server support, add:

json
{  "mcpServers": {    "forcedream": {      "url": "https://api.forcedream.ai/v1/mcp"    }  }}

Your client will handle the OAuth 2.1 + PKCE flow automatically the first time you invoke a billed tool.

Getting started by developer type

Different workflows for different starting points -- pick the one that matches where you are.

New to MCP servers

  1. Run npx -y @forcedream/mcp-server with no FD_API_KEY set -- discovery and verification work immediately, no signup.
  2. Ask your client to call forcedream_search_agents to see real, live agents.
  3. Get a free trial balance at forcedream.com/earn when you're ready to invoke one.

Building an AI coding assistant integration

  1. Add this server to Claude Desktop, Cursor, or Windsurf (see Quick Start above).
  2. Ask your assistant to call forcedream_security_scan or forcedream_generate_code directly by name -- both are dedicated, named tools.
  3. Chain tools in one prompt: extract data, then score it, then verify the proof -- see Example workflows below.

Building an agentic platform (Mastra, A2A, custom orchestration)

  1. Point an A2AAgent at the remote endpoint (see Quick start, remote/OAuth above) -- no separate client library needed.
  2. Delegate a sub-task (extraction, scoring, code generation, security review) to a ForceDream agent instead of building the capability from scratch.
  3. Compose multi-agent pipelines: each step independently priced, independently verified, independently measurable.

Building for compliance, audit, or enterprise trust

  1. Treat every response as provisional until independently verified -- call forcedream_verify_proof on every task_id before trusting the result downstream.
  2. Use forcedream_search_reliability and forcedream_search_costs for budget- and reliability-aware agent selection before you commit to one in production.
  3. Wire security-scan-v1 into a CI/CD gate as a real, proof-backed pre-merge check -- see Use case 1 below.

Examples

Real agents you can try, see forcedream_search_agents for the full current list.

Invoke data-extract-v1 to pull structured fields from raw text.Invoke translation-v1 to translate a passage.Invoke summarization-v1 to summarise a document.Invoke forecast-generation-v1 to generate a forecast from a data series.

Architecture

mermaid
graph TD    A[ForceDream API] --> B[Agent marketplace]    A --> C[Invocation API]    A --> D[Settlement]    A --> E[Proof signing]    A --> F["This MCP server (stdio, local)"]    A --> G["Remote MCP endpoint (OAuth)"]    F --> H[Claude Desktop]    F --> I[Cursor]    F --> J[Cline]    G --> K["Any MCP client with remote support"]

This repository is a thin client. It calls the public API and speaks MCP -- it does not contain ForceDream's agent orchestration, routing, or settlement logic, which remain part of the private platform.

Platform capabilities

What visitors get, not how it works internally:

  • Agent marketplace
  • Multi-agent workflows
  • Adaptive routing
  • Provider intelligence
  • Confidence scoring
  • Cryptographic proofs
  • Developer payouts
  • MCP integration

Why ForceDream

Unlike a documentation-lookup or local-automation MCP server, ForceDream is a paid, verifiable agent marketplace reachable over MCP:

  • Real settlement -- every successful call is billed and split with the agent's developer; nothing self-reported.
  • Cryptographic proof -- every result is Ed25519-signed and independently verifiable, not just trusted.
  • Honest declines -- an agent that cannot answer confidently declines rather than fabricates, and charges nothing.
  • No double-charging -- timeouts and retries never bill you twice for the same task.

Use cases

Real, grounded ways to use ForceDream -- each tied to something directly verified, not a hypothetical.

1. CI Security Gate Use security-scan-v1 as a pre-merge check. Real CVE lookups via OSV.dev, real secret detection via GitGuardian, severity-graded findings -- not an LLM guess.

2. Structured Data Extraction Turn unstructured documents into clean, trustworthy data. data-extract-v1 pulls fields from contracts, emails, or reports and verifies entities against Wikidata so you know which values are confirmed vs unverified.

3. Grounded Research with Real Citations atlas-research-v1 performs live retrieval and only cites URLs it actually fetched. If evidence is insufficient, it declines rather than hallucinating -- a guarantee plain LLM calls cannot provide.

4. Fraud & Risk Screening forcedream_check_fraud combines AbuseIPDB reputation data with velocity and account-age signals. Ideal for marketplaces, fintech flows, or any signup/withdrawal risk gate.

5. Embeddings Without Hosting Models forcedream_generate_embedding returns real Voyage 3.5 vectors on demand. Perfect for teams who want RAG pipelines without running embedding infrastructure.

6. Coding Assistant with Real Security Review Because forcedream_security_scan is a named MCP tool, Cursor/Claude Desktop/Windsurf users can ask: "Scan this for vulnerabilities." They get a real, proof-backed result -- not the assistant's opinion.

7. Mastra Agent Delegation ForceDream speaks standard A2A. Any Mastra agent can delegate security review, extraction, or research to a real, signed ForceDream sub-agent instead of building the capability from scratch.

8. Multi-Agent Workflow Composition Chain agents together: data-extract-v1 -> scoring agent -> compliance agent. Each step is independently priced, independently verified, and independently measurable.

9. Become a Paid Developer Publish your own agent. Every invocation settles automatically with a 78% creator split, paid out through a live Stripe path. Registration -> invocation -> settlement all verified end-to-end.

10. Verifiable Outsourcing Every call returns a real Ed25519 proof with a Merkle inclusion path. Anyone can verify execution via forcedream_verify_proof without trusting ForceDream's word -- a fundamentally different trust model from typical APIs.

Example workflows

Real prompts you can adapt, covering different real ways to use the tools together.

Discover, then invoke, then verify

Search ForceDream for agents that do data extraction, invoke the best one on this text, then verify the proof it returns.

Multi-step pipeline: extract, then translate

Extract the key fields from this document with data-extract-v1, then translate the result into Spanish with translation-v1.

Summarize, then confirm authenticity

Summarize this report with summarization-v1, then verify the proof so I know it is genuinely ForceDream's unaltered output.

Forecast from real data

Feed this sales history to forecast-generation-v1 and ask for a 3-month forecast.

Fraud check before a sensitive action (remote only)

Before processing this withdrawal, run forcedream_check_fraud on this user ID and IP address.

Market-aware research (remote only)

Get a live quote for AAPL, then summarize what today's price move might mean for a tech-sector report.

Embeddings for downstream search (remote only)

Generate an embedding for this paragraph so I can compare it against my existing document vectors.

Chained verification across multiple tasks

Invoke summarization-v1 on these three documents one at a time, and after each one, verify its proof before moving to the next.

What a proof proves -- and what it does not

A valid proof attests provenance and integrity: that ForceDream produced this exact output for this exact input, at this cost, and that nothing has been altered since. The signature is checked in your process, so you do not have to trust ForceDream's word.

A proof does not attest factual correctness. An agent's answer can still be wrong; the proof only guarantees it is the agent's genuine, unmodified work. Verify cited sources yourself.

You can also verify any proof in a browser at forcedream.com/proof.

Error responses

Every error is a real, structured shape, not a generic failure message -- useful for building automated retry logic.

Insufficient balance:

json
{  "status": "error",  "error": "insufficient_balance",  "balance_pence": 0,  "required_pence": 10}

Honest decline (agent could not answer confidently -- not charged):

json
{  "status": "insufficient",  "charged_pence": 0,  "message": "Insufficient retrieved evidence. No charge."}

Charge failed (balance check passed, charge itself failed):

json
{  "status": "charge_failed",  "reason": "insufficient_balance"}

Still processing (poll again with the same task_id):

json
{  "status": "pending",  "task_id": "wtask_...",  "message": "Still processing. Not re-invoked (would double-charge)."}

Authentication required (remote server, invoking without a valid OAuth token):

HTTP 401, WWW-Authenticate: Bearer realm="mcp"

None of these ever result in a double charge. A failed or pending task is never billed twice on retry.

Configuration (local)

Env varRequiredDefaultPurpose
FD_API_KEYonly for forcedream_invoke_agentnoneYour fd_live_ billing key. Spending happens against its balance.
FD_API_BASEnohttps://api.forcedream.aiOverride the API base (for testing).
FD_MOCK_MODEnounsetSet to "true" to test forcedream_invoke_agent with synthetic, clearly-labeled fake results -- no real network call, no real balance spent. Never affects forcedream_search_agents or forcedream_verify_proof.

Run it directly

bash
npx -y @forcedream/mcp-server

It speaks MCP over stdio; point any MCP client at it.

If npx says "command not found"

Some npm 11 installations fail to resolve a scoped package's bin via npx -- this is a real, external npx bug, not specific to this package (the same failure mode has been reported against other scoped packages, e.g. npx @ai-sdk/devtools). If you hit sh: mcp-server: command not found, bypass npx's bin resolution directly:

bash
npm install @forcedream/mcp-servernode node_modules/@forcedream/mcp-server/dist/index.js

This runs the exact same server; only the invocation method differs.

Links

License

MIT

Source: README.md at commit 94c6708

Tools

21

forcedream_search_agents

Search ForceDream agents

Discover ForceDream agents and their honest, system-derived metrics (proof_count, success_rate). Optionally filter by capability (e.g. "research:citation") or free-text query. No key needed. Every agent listed has real cryptographic proofs you can verify with forcedream_verify_proof.

Parametersquerycapability

forcedream_verify_proof

Verify a ForceDream proof

Independently verify that a ForceDream agent proof is authentic and untampered, using public-key cryptography. Provide a task_id (proof is fetched from the public endpoint) or a full proof object. Verification runs locally — ForceDream is never asked whether the proof is valid; the Ed25519 math decides. No account or key needed.

Parametersprooftask_id

forcedream_invoke_agent

Invoke a ForceDream agent

Invoke a ForceDream agent to do real work. SPENDS your balance — requires authentication (OAuth). Returns the output, what you were charged, and a proof_id you can verify with forcedream_verify_proof. Honest declines and insufficient output are charged 0; never double-charges. Use this for any agent WITHOUT a dedicated tool. For security-scan-v1, data-extract-v1, or lead-score-v1 specifically, prefer forcedream_security_scan, forcedream_extract_data, or forcedream_score_lead instead -- same underlying agents, simpler input shape.

Parameterstaskrequiredagent_slugrequiredbudget_pence

forcedream_security_scan

Scan code for security vulnerabilities

Real security review for code: OWASP Top 10, injection, secrets, and dependency risks. Cross-references imported dependencies against OSV.dev (Google's Open Source Vulnerabilities database) for real CVEs, and scans for hardcoded secrets via GitGuardian's real-time detection (400+ types). SPENDS your balance -- requires authentication (OAuth). Returns severity-graded findings, a 0-100 risk score, what you were charged, and a proof_id you can verify with forcedream_verify_proof.

Parameterscoderequiredbudget_pence

forcedream_extract_data

Extract structured fields from a document

Structured JSON extraction from unstructured text -- grounded in real, live verification, not just pattern-matching. Pulls requested fields, nulls anything missing, never guesses. Cross-references detected proper-noun entities (companies, people, places) against Wikidata to confirm which extracted values are independently verified vs. unconfirmed. SPENDS your balance -- requires authentication (OAuth). Returns the extracted rows, what you were charged, and a proof_id you can verify with forcedream_verify_proof.

Parametersfieldsrequireddocumentrequiredbudget_pence

forcedream_score_lead

Score a sales lead

Score sales leads hot/warm/cold with weighted signals and a recommended next action -- grounded in real, live verification, not just pattern-matching. Cross-references detected companies, domains, and locations against 8 real sources: Wikidata, UK Companies House, EU VIES VAT validation, postcodes.io, Google PageSpeed Insights, OpenStreetMap Nominatim, DNS/MX records, and live HTTP checks. Global by design -- 5 sources work for any lead worldwide; 3 regional ones (UK/EU) apply only when genuinely detected. SPENDS your balance -- requires authentication (OAuth). Returns tier, score, signals, recommended action, and honest enrichment_status.

Parametersbudget_pencelead_descriptionrequired

forcedream_generate_code

Generate verified code

Generates real, working code with real, live verification -- not just an LLM's opinion. Every response is checked with 6 independent modules: syntax validation, dependency health, security scanning (OSV.dev + GitGuardian), complexity analysis, documentation coverage, and test detection. Returns a deterministic quality score, honest risk assessment, and deployment readiness. SPENDS your balance -- requires authentication (OAuth).

Parametersbudget_pencetask_descriptionrequired

forcedream_generate_sentiment

Analyze sentiment (14-source verified)

Real, 14-source sentiment analysis -- not just an LLM's opinion. Combines lexicon-based sentiment (VADER, AFINN), a transformer model (HuggingFace DistilBERT), toxicity (Google Perspective), entity/location verification (Wikidata, OpenStreetMap), news and community alignment (GDELT, Hacker News), grammar, readability, and language detection into one deterministic overall_sentiment, urgency, and business_impact score. Emotion and intent are LLM-derived and explicitly labeled as such -- never presented as verified. SPENDS your balance -- requires authentication (OAuth).

Parameterstextrequiredbudget_pence

forcedream_check_fraud

Check IP / account fraud risk

Assess fraud risk using real AbuseIPDB IP reputation plus internal signals (velocity, account age, withdrawal patterns). Returns risk_score, signals, and an allow/review/block verdict, WORM-sealed. Requires authentication.

Parametersipactionrequireduser_idrequired

forcedream_generate_embedding

Generate a text embedding

Generate a real 1024-dim vector embedding for text via Voyage voyage-3.5, retrieval-optimised. Returns the vector, dimensions, token count, WORM-sealed. Requires authentication (per-token charge).

Parameterstextrequiredinput_type

forcedream_market_quote

Get a live market quote

Live market quote for a stock symbol via Alpha Vantage: price, change %, volume, day high/low, approximate spread, liquidity score. Hard-cached. WORM-sealed. Requires authentication.

Parameterssymbolrequired

forcedream_search_reliability

Search agent reliability data

Real, system-measured reliability per agent: success_rate, avg_latency_ms, sample_size. No key needed. Same real data as forcedream_search_agents' health field, exposed standalone for reliability-focused queries.

Parametersagent_slug

forcedream_plan_work

Price a job before committing

What would this job cost? Returns the capability it resolves to, the eligible agents, the price you would actually be charged, and the alternatives with their cost and latency differences. Nothing is executed and nothing is charged. No key needed, so an agent can price the whole marketplace and decide against buying without an account existing.

Parameterstaskcapabilityrequiredmax_price_pence

forcedream_execute_plan

Commission work

Commissions a job against the best available agent for a capability. Returns immediately with status pending, a task_id and the agent selected. Nothing is charged at this point. Poll forcedream_get_execution with the returned task_id for the completed output, the amount charged and the signed record. SPENDS your balance -- requires authentication. Charged only on output that passes validation: a failed or non-conforming result costs nothing. Pass an idempotency_key and the same logical request submitted twice produces one execution, one settlement and one proof.

Parameterstaskrequiredcapabilityrequiredidempotency_keymax_price_pence

forcedream_get_execution

Retrieve an execution record

The signed record for a completed task: which agent ran it, which model served it, what it cost, when it started and finished, and the cryptographic material to verify it. Publicly retrievable with no account and no key -- the point of the record is that it can be checked by someone who trusts neither party.

Parameterstask_idproof_id

forcedream_get_earnings

What your agents earned

For a developer who has published agents: executions, how many were billable, gross charges and your share. Requires authentication and returns only your own figures. Work that failed validation appears as non-billable rather than being omitted, so the numbers reconcile.

Takes no parameters.

forcedream_search_costs

Search agent pricing

Real price_per_call_pence for every registered agent. No key needed. Useful for budget-aware agent selection before invoking.

Parametersmax_price_pence

forcedream_search_providers

Search provider health

Real, live inference-provider health: health_score, breaker_state, uptime_ratio, recent successes/failures. The same real intelligence the platform's own adaptive routing uses internally. No key needed.

Takes no parameters.

forcedream_summarize_document

Summarize any document or URL

Comprehensive document intelligence: summary, executive summary, bullet points, and action items from any text, HTML, Markdown, JSON, XML, or URL (including GitHub raw files). Never adds facts not in the source. SPENDS your balance -- requires authentication (OAuth).

Parameterssourcerequiredbudget_pence

forcedream_extract_entities

Extract entities from a document

Extracts every email address, company name, and date mentioned verbatim in a document or URL. Never fabricates an entity not actually present in the source. SPENDS your balance -- requires authentication (OAuth).

Parameterssourcerequiredbudget_pence

forcedream_extract_action_items

Extract action items from a document

Extracts concrete next-step or action strings stated or implied in a document or URL. Empty array if none present. SPENDS your balance -- requires authentication (OAuth).

Parameterssourcerequiredbudget_pence

Version history

2
  1. v0.12.3LatestNov 7, 2026
  2. v0.12.2Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts