---
name: everyskill-library
description: Discover and install vetted Every Skill packages through the Every Skill MCP server.
version: 1.0.0
---

# Every Skill Library

Use this when a user asks to find, inspect, install, package, or submit an Every Skill package. Every Skill is the skill library by Every: a curated registry of expert AI workflows that can be installed into local agents and editors.

The MCP manifest and file resources are the source of truth for installation. The MCP submit tool is the source of truth for agent-driven submissions. Do not scrape the Every Skill web UI for package contents when MCP resources are available.

## What to do

- If the user asks what's new in their library feed, connect to the MCP server and call `skills.feed`.
- If the user asks to find or choose a skill, connect to the MCP server and call `skills.search`.
- If the user asks to inspect a skill, read the returned `everyskill://skills/{slug}` manifest resource.
- If the user asks to install a skill, read the manifest, fetch every accessible file resource, and write the files into the host agent's local skill directory.
- If the user asks to submit a skill, package the complete skill folder and call `skills.submit`.
- If MCP reports that a skill is locked or unavailable, explain that access is required. Do not reconstruct locked files from summaries, previews, or the web UI.

## Connect

Configure the Every Skill MCP server as a remote HTTP/streamable HTTP MCP server:

```text
https://skills.every.to/mcp
```

The server uses OAuth. Authorize with an Every Skill account and request the `skills:read` and `skills:submit` scopes. The MCP resource metadata is available at:

```text
https://skills.every.to/.well-known/oauth-protected-resource/mcp
```

If the client supports OAuth discovery, start at the protected resource metadata URL above. If the client asks for the MCP server URL directly, use `https://skills.every.to/mcp`.

After connecting, verify the server by listing tools and resources. The expected core tools are `skills.feed`, `skills.search`, and `skills.submit`. `skills.feed`, `skills.search`, and resource reads require `skills:read`; `skills.submit` requires `skills:submit`.

If the user wants to submit under a publishing profile, read:

```text
everyskill://account/publisher-profiles
```

Use `organization_id` from that resource for organization publishers. Omit `organization_id` to submit under the user's personal profile.

## Feed

Call the `skills.feed` tool during a heartbeat or when the user asks what's new. The feed is personalized to the authorized user's saved category preferences and can also include editorial featured pushes from Every. Feed items may be `skill.published`, `skill.updated`, or `skill.featured`.

Example:

```json
{
  "since": "2026-06-01T00:00:00Z",
  "include_featured": true
}
```

The tool returns `next_since`; store that value locally and pass it as `since` on the next heartbeat. Feed items include a short `summary`, optional `changelog`, the human skill page URL, and an `everyskill://` manifest resource URI. If the user wants to install a feed item, read the manifest resource and then read the listed file resources.

## Search

Call the `skills.search` tool with a short natural-language query, optional category, and optional limit.

Example:

```json
{
  "query": "editorial style",
  "category": "content-editorial",
  "limit": 5
}
```

The tool returns skill summaries and `everyskill://` manifest resource URIs.

Use specific queries based on the user's goal, not broad catalog dumps. For example, search for `code review`, `daily brief`, `editorial style`, or `growth analysis`.

## Install

Read the returned skill manifest resource, such as:

```text
everyskill://skills/every-style-check
```

The manifest contains metadata, entitlement state, install guidance, package URLs when available, and file resource URIs for every file in the package.

Manifest resources are expected to include fields like:

- `slug`
- `name`
- `description`
- `access`
- `entitlement`
- `onboarding_note`, when the skill has first-time setup guidance
- `package_url`, when ZIP installation is available
- `files[]`, with each file's relative `path`, `resource_uri`, content type, and lock state

For accessible skills:

1. Create a local skill directory named after the manifest `slug`.
2. For each entry in `files`, read its `resource_uri`.
3. Write the returned content to the listed relative `path`.
4. Preserve the full file tree exactly, including `SKILL.md`, `scripts/`, `references/`, and other folders.
5. Register or refresh the host agent's local skill library after writing the files, if the host requires it.

Prefer file resources over scraping the web UI. Use `package_url` only when the host explicitly prefers ZIP installation.

If you know the host agent's native skill directory, install there. If the host has no clear skill convention, create a project-local skill folder, preserve the package tree, and tell the user where the files were written.

If the manifest includes `onboarding_note`, use it after installation to ask the user only the setup questions needed to make the skill usable.

Paid skills may return locked resources for accounts without access. Do not try to infer or reconstruct locked package content.

## Resource files

Read package files from their `resource_uri`. Preserve the file path exactly. Treat file extensions as meaningful:

- `.md` files are markdown instructions or references.
- `.ts`, `.js`, `.py`, `.sh`, and similar files are scripts or code helpers.
- `.json`, `.yaml`, and `.yml` files are structured configuration.
- Binary assets may be encoded or exposed with a media type; write them without changing their bytes.

The root `SKILL.md` is the primary instruction file for an installed skill. Supporting folders such as `scripts/`, `references/`, `agents/`, and `assets/` are part of the package and should be installed with it.

## Submit

When a user asks to submit a new skill to Every Skill, package the complete skill folder and call the `skills.submit` tool.

The package must include a root `SKILL.md` with YAML frontmatter and a `description` field. Supported package paths are:

- `SKILL.md`
- `scripts/...`
- `references/...`
- `agents/...`
- `assets/...`

Call `skills.submit` with:

```json
{
  "skill_name": "lowercase-skill-slug",
  "submission_reason": "Why this skill should be reviewed and included.",
  "onboarding_note": "Optional first-time setup guidance for agents.",
  "files": [
    {
      "path": "SKILL.md",
      "content": "---\\nname: example-skill\\ndescription: ...\\n---\\n\\n# Example Skill\\n...",
      "encoding": "text"
    }
  ]
}
```

Use text encoding for normal markdown/code files. Use base64 encoding for binary assets. Preserve the file tree exactly.

If the user wants to submit under a publishing profile, first read `everyskill://account/publisher-profiles`, then pass an organization profile's `organization_id`; the user must already belong to that organization. Omit `organization_id` for the personal profile. The submission will enter Every's review queue and will not publish automatically.
