Every Number

Turn an Excel or CSV export into a dashboard where every number has a receipt. No account.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
90%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,622토큰 (도구 정의)
~17.4 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.27%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "spreadsheet-dashboard": {
      "url": "https://everynumber.app/mcp"
    }
  }
}

원격 엔드포인트

https://everynumber.app/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (1)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟡make_dashboard_from_file(file_url, file_content, file_name, content_encoding, sheet, ...)

Turn a spreadsheet export (Excel or CSV, up to 10 MB) into an Every Number dashboard. Returns a read-only dashboard link and every number on it with its receipt: the definition, the rows it used, and the rows it left out with the reason. Fixed rules lay out the screen and a database counts every number; no AI reads the file. Send the file as file_url (a Google Sheet shared as 'Anyone with the link', a Dropbox link, or a file in a public GitHub repository) or as file_content (CSV text, or base64 for Excel) with file_name. No account needed. Anyone with the link can open the dashboard, and it is deleted 24 hours after upload unless the person saves it. Limits: 5 files per 10 minutes and 20 per day from one place.

입력 스키마

{
  "type": "object",
  "properties": {
    "file_url": {
      "description": "A link to the file: a Google Sheet shared as 'Anyone with the link', a Dropbox link, a file in a public GitHub repository or gist, or an Every Number sample such as https://everynumber.app/samples/tickets/tickets-export-2026-10-18.csv. Send this or file_content.",
      "type": "string",
      "maxLength": 2048
    },
    "file_content": {
      "description": "The file itself, up to 10 MB: CSV or TSV text as it is, or an Excel file encoded as base64. Send this or file_url.",
      "type": "string",
      "maxLength": 13982040
    },
    "file_name": {
      "description": "The file's name with its extension, such as orders-october.csv or pipeline.xlsx. Needed with file_content. It also becomes the dashboard's title.",
      "type": "string",
      "maxLength": 200
    },
    "content_encoding": {
      "description": "How file_content is written. Default: base64 for .xlsx, .xlsm and .xls, text for everything else.",
      "type": "string",
      "enum": [
        "text",
        "base64"
      ]
    },
    "sheet": {
      "description": "For an Excel file with several sheets, the name of the sheet to read. Default: the sheet with the most data.",
      "type": "string",
      "maxLength": 200
    },
    "file": {
      "description": "A file the person attached in ChatGPT. ChatGPT fills this in. Other assistants send file_url or file_content instead.",
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "maxLength": 4096
        },
        "file_id": {
          "type": "string",
          "maxLength": 200
        },
        "mime_type": {
          "type": "string",
          "maxLength": 200
        },
        "file_name": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "download_url",
        "file_id"
      ]
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "dashboard_url": {
      "type": "string",
      "description": "The dashboard, read-only. Anyone with this link can open it until it's deleted."
    },
    "title": {
      "type": "string"
    },
    "decision": {
      "type": "string",
      "description": "The question the screen is laid out to answer, picked by rules from the columns."
    },
    "screen": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "why": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "why"
      ],
      "additionalProperties": false
    },
    "expires_at": {
      "type": "string",
      "description": "When the dashboard and the rows we read are deleted, unless it's saved (ISO 8601)."
    },
    "keep": {
      "type": "string"
    },
    "file": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "sheet": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "sheets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "rows": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "columns": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "data_through": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "name",
        "sheet",
        "sheets",
        "rows",
        "columns",
        "data_through"
      ],
      "additionalProperties": false
    },
    "headline": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "change": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "compared_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "number": {
            "type": "string",
            "description": "key of the number in numbers"
          }
        },
        "required": [
          "label",
          "value",
          "change",
          "compared_to",
          "number"
        ],
        "additionalProperties": false
      },
      "description": "The numbers across the top of the dashboard."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "number": {
            "type": "string",
            "description": "key of the number in numbers"
          }
        },
        "required": [
          "text",
          "number"
        ],
        "additionalProperties": false
      },
      "description": "What this file says, in sentences filled from the numbers."
    },
    "numbers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "description": "The number as the dashboard shows it."
          },
          "exact": {
            "description": "The same number with more precision, when it differs.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "why": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "receipt": {
            "type": "object",
            "properties": {
              "receipt_id": {
                "type": "string",
                "description": "The receipt's fingerprint. Same file and same definition give the same ID."
              },
              "definition": {
                "type": "string",
                "description": "The rule behind the number, in plain English."
              },
              "source_file": {
                "type": "string"
              },
              "data_through": {
                "description": "The last date in the data (YYYY-MM-DD), if the file has dates.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rows_in_file": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "rows_used": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "rows_outside_definition": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "Rows the definition doesn't cover, such as other statuses."
              },
              "rows_left_out": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "reason": {
                      "type": "string"
                    },
                    "count": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "rows": {
                      "type": "string",
                      "description": "Row numbers in the file, such as 'Rows 4, 17 and 3 more'."
                    }
                  },
                  "required": [
                    "reason",
                    "count",
                    "rows"
                  ],
                  "additionalProperties": false
                },
                "description": "Rows skipped on upload (totals, blanks) and rows the definition leaves out, each with the reason."
              },
              "math": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The arithmetic from the rows in the file to the number, one step per line."
              },
              "checks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "text"
                  ],
                  "additionalProperties": false
                },
                "description": "Checks the number passed (ok true) or should be read with (ok false)."
              }
            },
            "required": [
              "receipt_id",
              "definition",
              "source_file",
              "data_through",
              "rows_in_file",
              "rows_used",
              "rows_outside_definition",
              "rows_left_out",
              "math",
              "checks"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "key",
          "label",
          "value",
          "exact",
          "raw",
          "why",
          "error",
          "receipt"
        ],
        "additionalProperties": false
      }
    },
    "how_counted": {
      "type": "string"
    }
  },
  "required": [
    "dashboard_url",
    "title",
    "decision",
    "screen",
    "expires_at",
    "keep",
    "file",
    "headline",
    "findings",
    "numbers",
    "how_counted"
  ],
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 1개