SwishrJobs

com.swishrjobsPublished by swishrjobs.comOfficial publisherv1.0.0Updated Oct 31, 2026

Deterministic digital jobs with independently verified deliverables.

VerifiedStreamable HTTPWeb executableDeveloper ToolsData & Analytics

Overview

AI-generated overview

SwishrJobs runs priced, deterministic data and code-generation jobs — CSV cleaning, JSON/XML conversion, Python modules with pytest tests — and returns…

What you can do
  • List and compare capabilities with their inputs, deliverables, price, benchmarked success rate and expected cost per accepted result
  • Rank capabilities for a described task and explain the ranking
  • Validate a job request and get a priced quote without executing anything
  • Authorize and run a quoted job, or call a capability-specific tool for its exact inputs
  • Clean, profile and score CSVs, convert CSV to JSON rows, and check product GTINs in a feed
  • Generate standard-library Python modules, packages and pytest suites for parsing, validation, diffing, flattening, deduplication and similar tasks
When to use it
Useful when you want a small, well-specified data-cleaning or code-generation deliverable produced and verified for you rather than written ad hoc, and you want to see the price and measured reliability before committing.
Requirements
A remote streamable HTTP endpoint; no package, environment variable or header is declared. Jobs are quoted before execution and require explicit authorization.
Before you install
Running a job spends money: submit_job and the capability-specific submit tools authorize and execute a priced job, so check the quote from preflight_job first. Reported success rates come from synthetic benchmarks, not customer outcomes. Job inputs are sent to a third-party service.

Installation

In SourceWeft

  1. Open SwishrJobs 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/com.swishrjobs%2Fswishrjobs/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": {
    "swishrjobs": {
      "type": "http",
      "url": "https://swishrjobs.com/mcp"
    }
  }
}

README

This repository has no README.

Tools

37

list_capabilities

List SwishrJobs capabilities

List every task SwishrJobs can execute, with each one's inputs, deliverables, price, and whether it can run right now.

Takes no parameters.

get_performance

Read measured SwishrJobs performance

Return the measured success rate, latency, and expected cost per accepted result for each capability, from controlled synthetic benchmarks. A capability that has not been benchmarked reports measured=false with a null success rate; no rate is ever invented. These are not customer outcomes.

Takes no parameters.

select_capability

Choose the best SwishrJobs capability for a task

Rank capabilities for a described task by task match, measured synthetic success rate, and expected cost per accepted result, and explain the ranking. Use this to decide which capability to run before quoting it.

Parameterstaskrequiredlimitavailable_only

preflight_job

Quote a SwishrJobs job

Validate a job request and receive a priced quote without executing anything. Use this to learn the cost and the accepted inputs before authorizing.

Parametersinputsquote_idrequestercapability_idrequiredaccepted_price

submit_job

Authorize and run a SwishrJobs job

Authorize and execute a previously quoted job, then return the verified result. Requires explicit authorization. Prefer a capability-specific tool (for example submit_csv_json_transformation) when one exists, because it documents that capability's exact inputs.

Parametersinputsquote_idauthorized_byrequiredcapability_idrequiredaccepted_price

submit_boundary_value_generation

Boundary value generator module with pytest tests

Produce a standard-library Python module that produces boundary values for an integer range, plus pytest tests. Choose this when you need the boundary and just-outside values of an inclusive integer range, with tests. Do not choose this for non-integer ranges, random data generation, or property-based testing frameworks. Example requests: Write a Python module that produces the boundary and just-outside values for an integer range, with tests. | I need boundary values for an inclusive integer range for test data. | Generate a boundary-value module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_csv_clean

CSV cleaning: normalise, deduplicate, and tidy a CSV

Clean a CSV and return the cleaned file plus a record of every change. Trims cells, makes duplicate and empty column names unique, drops blank and duplicate rows, and pads or truncates ragged rows. Choose this when you want the CSV itself tidied and a change log: cells trimmed, column names made unique, blank and duplicate rows removed, ragged rows padded or truncated. Do not choose this when you only need the problems listed (use csv-preflight), or when deciding which duplicate to keep needs a business rule: this keeps the first occurrence. Example requests: Clean this CSV: trim the fields, drop the blank lines and remove duplicate rows. | Normalise this export before I load it, and tell me what you changed. | Fix the duplicate column names and ragged rows in this CSV.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_csv_json_transformation

CSV to JSON transform script with pytest tests

Produce a standard-library Python module that transforms CSV text into a JSON array of objects, plus pytest tests. The transformation is chosen from a registered template so the result is deterministic and verifiable. Choose this when you need a tested, standard-library function that parses CSV text into a JSON array of objects, one per row. Do not choose this for per-column type coercion or bespoke rules, or if you need the file converted for you rather than a module that does it: this delivers code, not converted data. Example requests: Give me a Python module that turns CSV text into a JSON array of objects, with tests. | I have CSV and need JSON objects, one per row, produced by a tested function. | Convert CSV to JSON and prove it with a pytest suite.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_csv_preflight

CSV preflight: find what will break the import

Check a CSV before it is imported. Reports ragged rows, duplicate and empty column names, blank and duplicate rows, per-column type drift and column profiles, each with the row number a spreadsheet would show. Choose this when you have a CSV file and want the problems listed with the row numbers a spreadsheet shows: ragged rows, duplicate or empty column names, blank and duplicate rows, and per-column type drift. Do not choose this when you want the file fixed rather than diagnosed (use csv-clean), when you want a module that validates records in your own pipeline (use data-validation-module), or for a binary workbook such as xlsx, which this service cannot read. Example requests: Check this CSV for problems before I import it into Postgres. | Why does my CSV import fail? Here is the file. | Preflight a customer data export and tell me which rows are malformed.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_csv_quality_report

CSV data-quality report

Score a CSV on completeness, type consistency and uniqueness, per column, and report the columns that are always empty, mostly empty, constant, or hold mixed types, plus duplicate rows. Choose this when you need a quick, reproducible quality assessment of a dataset: a score plus per-column completeness, uniqueness and type consistency. Do not choose this when you need the specific malformed rows listed (use csv-preflight), or when you need a module that produces a quality report inside your pipeline (use dataset-quality-report). Example requests: Profile this CSV and tell me which columns are unreliable. | Score this dataset export for quality before I trust it. | Which columns in this CSV are mostly empty or always the same value?

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_csv_to_json_rows

CSV to JSON records

Convert a CSV into a JSON array of objects keyed by the header, with documented type coercion: empty becomes null, integers and numbers become numbers, true and false become booleans, everything else stays a string. Choose this when you need a CSV delivered as JSON records, with documented type coercion: empty to null, numbers to numbers, true and false to booleans. Do not choose this when you need a module that performs the conversion inside your own pipeline (use csv-json-transformation), or when the target shape is nested: CSV is flat. Example requests: Turn this CSV into a JSON array of objects. | Convert this spreadsheet export to JSON for my API. | Give me this CSV as JSON records, with numbers as numbers.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_data_validation_module

Data validation module with pytest tests

Produce a standard-library Python module that validates a record and returns structured errors, plus pytest tests. The rule set is chosen from a registered template so the result is deterministic and verifiable. Choose this when a record must be checked against a registered rule set and the result is a list of human-readable errors, with tests. Do not choose this for rules outside the registered template, or when you need a schema-validation library rather than a self-contained module. Example requests: Write a Python module that validates a record against a fixed rule set and returns a list of error strings. | I need a validation function that returns an empty list for valid input, with tests. | Generate a data-validation module and its pytest suite.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_dataset_quality_report

Dataset quality report module with pytest tests

Produce a standard-library Python module that computes a quality report for an array of records, plus pytest tests. Choose this when you need a computed quality summary of a record array: counts, presence, nulls, completeness ratio, exact duplicates. Do not choose this for statistical or semantic quality (outliers, drift, schema conformance beyond the fixed checks). Example requests: Write a Python module that reports record count, per-field presence and duplicate count for a dataset, with tests. | I need a data-quality summary: null counts, completeness ratio, exact duplicates. | Generate a dataset-quality report module and test it.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_duplicate_group_report

Duplicate group report module with pytest tests

Produce a standard-library Python module that groups records sharing a key field, plus pytest tests. Choose this when you need each repeated key value reported with its count and the positions of its members. Do not choose this to remove duplicates (use record-deduplication) or to match near-duplicates. Example requests: Write a Python module that groups records by a key field and reports duplicated values, with tests. | I need to know which key values occur more than once, with counts and positions. | Generate a duplicate-group report module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_edge_case_check

Edge-case check module with pytest tests

Produce a standard-library Python module that reports boundary conditions for a text value, plus pytest tests. Choose this when a text value must be classified against a fixed set of boundary conditions, one boolean each. Do not choose this for validation with error messages (use data-validation-module) or for conditions outside the fixed set. Example requests: Write a Python module that reports which boundary conditions a text value satisfies, with tests. | I need checks for empty, whitespace-only, over-length, non-ASCII and control characters. | Generate an edge-case check module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_env_config_parsing

Dotenv configuration parser module with pytest tests

Produce a standard-library Python module that parses a dotenv-style configuration into JSON, plus pytest tests. Choose this when you need to parse a dotenv-style configuration into a JSON object, skipping comments and blank lines and honouring quoted values, delivered as a module with tests. Do not choose this when you need variable expansion, multi-line values, or to read the real process environment: this parser takes a string and returns an object, with no interpolation. Example requests: Write a Python module that parses a .env file into a dict, handling comments and quotes, with tests. | I need a dotenv parser that ignores blank lines and export prefixes. | Generate a dotenv-parsing module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_field_mapping

Field mapping and renaming module with pytest tests

Produce a standard-library Python module that renames and selects JSON fields using a mapping, plus pytest tests. Choose this when fields must be renamed and selected via an explicit source-to-destination mapping. Do not choose this for computed or transformed values: only names and selection change. Example requests: Write a Python module that renames and selects JSON fields using a mapping, with tests. | I need to rename keys in an object or array of objects via a source-to-destination map. | Generate a field-mapping module and test it.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_html_text_extraction

HTML to text extraction module with pytest tests

Produce a standard-library Python module that extracts readable text from an HTML fragment, plus pytest tests. Choose this when you need the visible text of an HTML fragment with tags removed, script and style contents dropped, entities unescaped and whitespace collapsed, delivered as a module with tests. Do not choose this when you need a parsed DOM, CSS-selector queries, or a faithful browser rendering: the result is a text approximation, not a parsed document. Use a full HTML parser for that. Example requests: Write a Python module that strips HTML tags from a fragment and returns the plain text, with tests. | I need to turn an HTML snippet into readable text, dropping script and style blocks. | Generate an HTML-to-text module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_json_csv_conversion

JSON to CSV transform module with pytest tests

Produce a standard-library Python module that renders a JSON array of objects as CSV text, plus pytest tests. Choose this when you need a tested function that renders a JSON array of objects as CSV, using the union of keys as the header. Do not choose this when you need the conversion performed on your data now, or when the CSV format must be bespoke (delimiter, quoting rules). Example requests: Write a Python function that renders a JSON array of objects as CSV, with tests. | I need JSON to CSV with the header being the union of all keys. | Generate a JSON-to-CSV module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_json_diff

Structural JSON diff module with pytest tests

Produce a standard-library Python module that reports the structural difference between two JSON documents, plus pytest tests. Choose this when you need the structural difference between two JSON documents as added, removed and changed paths, delivered as a module with tests. Do not choose this for a textual or line-oriented diff, for JSON Patch generation, or for applying a patch. This reports differences; it does not transform documents. Example requests: Write a Python module that diffs two JSON documents and reports added, removed and changed keys, with tests. | I need a structural JSON diff that shows changed paths, not a line diff. | Generate a JSON-diff module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_json_schema_inference

JSON Schema inference module with pytest tests

Produce a standard-library Python module that infers a JSON Schema from sample records, plus pytest tests. Choose this when you need a draft 2020-12 JSON Schema inferred from sample objects, with keys present in every record marked required. Do not choose this for a hand-tuned schema or for constraints the samples do not express (formats, ranges, enums). Example requests: Write a Python module that infers a JSON Schema from sample records, with tests. | I need a JSON Schema generated from example objects, marking common keys as required. | Generate a schema-inference module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_json_schema_validation

JSON Schema validation of a document

Validate a JSON document against a JSON Schema and report every violation with its JSON Pointer path and the keyword that failed. Supports type, required, properties, items, enum, const, numeric bounds, string length and pattern, array size and uniqueness, and additionalProperties. Choose this when you have a concrete JSON document and a JSON Schema and need every violation located by JSON Pointer path and failing keyword. Do not choose this when you need a validator module for your own service (use webhook-payload-validation), or when the schema relies on $ref, allOf, anyOf or oneOf, which this documented subset does not evaluate. Example requests: Validate this JSON payload against my schema and list the failures. | Which fields in this webhook payload violate the schema? | Check this API response against its JSON Schema.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_key_normalisation

Object key normalisation module with pytest tests

Produce a standard-library Python module that rewrites JSON object keys to lower snake_case, plus pytest tests. Choose this when object keys must become lower snake_case, with values left untouched. Do not choose this expecting acronym splitting: a capital run like HTTPServer becomes httpserver, not http_server. Example requests: Write a Python module that rewrites JSON object keys to lower snake_case, with tests. | I need camelCase keys converted to snake_case without changing the values. | Generate a key-normalisation module and a pytest suite.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_malformed_record_detection

Malformed-record detection module with pytest tests

Produce a standard-library Python module that reports records violating a fixed field contract, plus pytest tests. Choose this when you need one entry per offending record, naming its index and the rule it broke, against a fixed contract. Do not choose this for a contract outside the registered template, or if you need the records corrected rather than reported. Example requests: Write a Python module that finds records violating a fixed field contract, with tests. | I need a checker that reports the index and failed rule for each bad record. | Generate a malformed-record detector and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_markdown_table_rendering

Markdown table renderer with pytest tests

Produce a standard-library Python module that renders JSON records as a Markdown table, plus pytest tests. Choose this when JSON records must become a GitHub-flavoured Markdown table with pipes escaped. Do not choose this for HTML tables, spreadsheet formats, or column alignment rules beyond the template. Example requests: Write a Python module that renders JSON records as a GitHub Markdown table, with tests. | I need a Markdown table renderer that escapes pipes so data cannot break the table. | Generate a Markdown-table module and test it.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_metadata_extraction

Metadata extraction module with pytest tests

Produce a standard-library Python module that extracts key/value metadata from a document head, plus pytest tests. Choose this when 'key: value' metadata must be read from the head of a text document, preserving duplicate keys rather than overwriting. Do not choose this for YAML/TOML front matter parsing or for metadata spread through the body. Example requests: Write a Python module that extracts 'key: value' metadata from a document head, with tests. | I need front-matter style metadata pulled out, recording duplicate keys. | Generate a metadata-extraction module and test it.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_nested_flattening

Nested-object flattening module with pytest tests

Produce a standard-library Python module that flattens a nested object into dotted-path keys, plus pytest tests. Choose this when a nested object must become single-level dotted-path keys, leaving lists as leaves. Do not choose this if you need lists indexed into keys (a.0, a.1) or a custom separator: the template fixes the behaviour. Example requests: Write a Python module that flattens a nested object into dotted-path keys, with tests. | I need nested JSON flattened to single-level keys like a.b.c. | Generate a flattening module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_product_feed_gtin_check

Product feed GTIN check: find invalid barcodes before upload

Check every product identifier in a CSV feed against the GS1 check digit. Reports non-numeric values, wrong-length codes and check-digit mismatches with the expected digit, each with the spreadsheet row number, so a Google Merchant Center or Shopify feed can be corrected before it is rejected. Choose this when you have a product feed or catalogue CSV and want every identifier that will be rejected for a bad length, a non-numeric value or a failing GS1 check digit, located by the row a spreadsheet shows. Do not choose this when you need to know whether a valid-looking GTIN is genuinely registered to a company, which needs a registry lookup this offline check does not perform, or for a binary workbook such as xlsx, which this service cannot read. Example requests: Check my product feed's GTINs before I upload it to Merchant Center. | Which barcodes in this catalogue have an invalid check digit? | Validate the UPC and EAN codes in this CSV and tell me which rows to fix.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_python_multifile_package

Multi-file Python package with tests and README

Produce a small multi-module Python package from a registered, deterministic template: an implementation module, a public facade, a pytest suite, and a README. Choose this when the deliverable is a package rather than one file: a facade, an implementation module, a test suite, and a README, from a registered template. Do not choose this for a single module (use python-utility-module) or for a package whose structure or behaviour is bespoke: only the registered template's shape is produced. Example requests: Build a small Python package with an implementation module, a public facade, tests and a README. | I need a multi-file Python deliverable, not a single script. | Create a package where the facade re-exports the implementation and the tests import both.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_python_utility_module

Python utility module with pytest tests

Produce a small standard-library Python module from a registered, deterministic template, plus the pytest tests that verify it. Choose this when you need one small, importable standard-library Python module whose behaviour matches a registered template, delivered with a passing pytest suite you can re-run yourself. Do not choose this for a multi-file package (use python-multifile-package), for code needing third-party packages, or when you cannot name a registered template: the behaviour is fixed by the template and an unregistered request is rejected rather than guessed. Example requests: Write me a small Python function that turns a title into a URL slug, with tests. | I need a pure-standard-library Python module with a docstring and a pytest suite. | Generate a Python helper module I can import, plus the tests that prove it works.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_readme_generation

README generator module with pytest tests

Produce a standard-library Python module that generates a Markdown README from function signatures, plus pytest tests. Choose this when a Markdown README must be produced from a list of function signatures, one section each. Do not choose this for prose documentation or API references beyond signature-derived sections. Example requests: Write a Python module that generates a Markdown README from function signatures, with tests. | I need a README generator that documents each supplied function signature. | Generate a README-generator module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_record_deduplication

Record deduplication module with pytest tests

Produce a standard-library Python module that removes duplicate objects from a JSON array, plus pytest tests. Choose this when duplicates must be removed from a JSON array, keeping the first occurrence and preserving order, optionally on a key subset. Do not choose this for fuzzy matching or similarity-based deduplication: the comparison is exact. Example requests: Write a Python module that removes duplicate objects from a JSON array, keeping the first, with tests. | I need deduplication by a key subset that preserves input order. | Generate a dedupe module and a pytest suite for it.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_regex_from_examples

Regex builder module with pytest tests

Produce a standard-library Python module that builds a regular expression from positive and negative examples, plus pytest tests. Choose this when a regular expression must be derived from examples using the shared literal prefix, correctly escaped. Do not choose this expecting a general regex synthesiser: it uses the longest literal prefix shared by the positive examples, and negative examples are used for checking, not for general inference. Example requests: Write a Python module that builds a regex from positive and negative examples, with tests. | I need a regular expression derived from example strings, escaped correctly. | Generate a regex-builder module and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_regression_suite_generation

Regression suite generator with pytest tests

Produce a standard-library Python module that turns recorded input/output pairs into a pytest module, plus pytest tests. Choose this when recorded input/output pairs must become one deterministic pytest case per pair. Do not choose this to test behaviour not covered by the recorded pairs, or to generate non-deterministic tests. Example requests: Write a Python module that turns recorded input/output pairs into a pytest module, with tests. | I have input/output examples and want a deterministic regression test suite. | Generate a regression-suite generator and prove it with pytest.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_text_parser_module

Text parsing module with pytest tests

Produce a standard-library Python module that parses a text format into a structured result, plus pytest tests including malformed input. The format is chosen from a registered template so the result is deterministic and independently verifiable. Choose this when you need a standard-library parser for a registered text format, delivered with tests that include malformed input. Do not choose this for a bespoke grammar the templates do not cover, or for formats needing a third-party parser library. Example requests: Write a Python module that parses a key=value config file into a dict, with tests for malformed input. | I need a parser module that handles a fixed text format and rejects bad input with a clear error. | Generate a text-parsing module plus tests that cover the malformed cases.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_webhook_payload_validation

Webhook payload validation module with pytest tests

Produce a standard-library Python module that validates a webhook payload envelope, plus pytest tests. Choose this when an incoming webhook envelope must be validated to the registered shape and rejected with structured errors. Do not choose this for provider-specific signature verification or for a schema that differs from the registered envelope. Example requests: Write a Python module that validates a webhook JSON envelope and returns structured errors, with tests. | I need to check a webhook has a non-empty event string, an object data, and an optional id. | Generate a webhook-validation module and its pytest suite.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

submit_xml_json_conversion

XML to JSON conversion module with pytest tests

Produce a standard-library Python module that converts an XML document into JSON, plus pytest tests. Choose this when you need a tested, standard-library XML-to-JSON conversion that keeps attributes as '@name' keys and collects repeated elements. Do not choose this when the document uses DTDs, external entities, or namespaces: those are not resolved. It is also a code deliverable, not a conversion of your specific file. Example requests: Write a Python module that converts an XML document into JSON, with tests. | I need XML to JSON where attributes become @name keys and repeated elements become lists. | Generate an XML-to-JSON converter and test it, including malformed XML.

Parametersinputsrequiredquote_idauthorized_byrequiredaccepted_price

Version history

1
  1. v1.0.0LatestOct 31, 2026

Score

75% 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

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.