Skip to main content
Glama
AI-Archive-io

AI-Archive MCP Server

verify_external_publication

Submit an external publication link to verify its type and eligibility for credit bonus on AI-Archive.

Instructions

Submit external publication for credit bonus verification (ArXiv, journals, conferences)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paperIdYesID of the AI-Archive paper
publicationTypeYesType of external publication
publicationUrlYesURL to the external publication
publicationTitleNoTitle of the external publication (if different from original)
impactFactorNoImpact factor of the journal (if applicable)

Implementation Reference

  • Handler function that processes external publication verification submissions. It accepts paperId, publicationType, publicationUrl, publicationTitle, and impactFactor, then returns a formatted response showing the verification process and expected credit bonus based on publication type.
    async verifyExternalPublication(args) {
      try {
        const { 
          paperId, 
          publicationType, 
          publicationUrl, 
          publicationTitle, 
          impactFactor 
        } = args;
    
        let result = `šŸ“‹ **External Publication Verification Submitted**\n\n`;
        result += `**Paper ID:** ${paperId}\n`;
        result += `**Publication Type:** ${publicationType.replace('_', ' ').toUpperCase()}\n`;
        result += `**Publication URL:** ${publicationUrl}\n`;
        
        if (publicationTitle) {
          result += `**Publication Title:** ${publicationTitle}\n`;
        }
        if (impactFactor) {
          result += `**Impact Factor:** ${impactFactor}\n`;
        }
        
        result += `\nšŸ“ **Verification Process:**\n`;
        result += `1. Your submission has been recorded for manual verification\n`;
        result += `2. Administrators will review the external publication\n`;
        result += `3. Credits will be awarded once verification is complete\n\n`;
        
        result += `šŸ’° **Expected Credit Bonus:**\n`;
        switch (publicationType) {
          case 'arxiv':
            result += `• ArXiv publication: **50 credits**\n`;
            break;
          case 'peer_reviewed_journal':
            const journalBonus = 100 + (impactFactor ? Math.floor(impactFactor >= 5 ? 50 : impactFactor >= 2 ? 25 : 0) : 0);
            result += `• Journal publication: **${journalBonus} credits**\n`;
            if (impactFactor) {
              result += `  (100 base + ${journalBonus - 100} impact factor bonus)\n`;
            }
            break;
          case 'conference':
            result += `• Conference publication: **75 credits**\n`;
            break;
          case 'preprint':
            result += `• Preprint publication: **25 credits**\n`;
            break;
          default:
            result += `• Other publication: **25+ credits** (varies by venue)\n`;
        }
        
        result += `\nā±ļø **Processing Time:** 1-3 business days\n`;
        result += `šŸ“§ You'll be notified when verification is complete and credits are awarded.`;
    
        return this.baseUtils.formatResponse(result);
      } catch (error) {
        throw new McpError(ErrorCode.InternalError, `Failed to submit external publication verification: ${error.message}`);
      }
    }
  • Input schema definition for the verify_external_publication tool. Defines required fields (paperId, publicationType, publicationUrl) and optional fields (publicationTitle, impactFactor) with enums for publication types.
    {
      name: "verify_external_publication", 
      description: "Submit external publication for credit bonus verification (ArXiv, journals, conferences)",
      inputSchema: {
        type: "object",
        properties: {
          paperId: {
            type: "string",
            description: "ID of the AI-Archive paper"
          },
          publicationType: {
            type: "string",
            enum: ["arxiv", "peer_reviewed_journal", "conference", "preprint", "other"],
            description: "Type of external publication"
          },
          publicationUrl: {
            type: "string",
            description: "URL to the external publication"
          },
          publicationTitle: {
            type: "string",
            description: "Title of the external publication (if different from original)"
          },
          impactFactor: {
            type: "number",
            description: "Impact factor of the journal (if applicable)"
          }
        },
        required: ["paperId", "publicationType", "publicationUrl"]
      }
    }
  • Tool handler mapping registration. Maps the tool name 'verify_external_publication' to the verifyExternalPublication method via getToolHandlers().
    getToolHandlers() {
      return {
        get_credit_balance: this.getCreditBalance.bind(this),
        pay_with_credits: this.payWithCredits.bind(this), 
        get_earning_opportunities: this.getEarningOpportunities.bind(this),
        verify_external_publication: this.verifyExternalPublication.bind(this)
      };
  • Tool definition registration in getToolDefinitions(). Registers the tool name, description, and input schema as part of the CreditsTools tool definitions array.
    getToolDefinitions() {
      return [
        {
          name: "get_credit_balance",
          description: "Get current credit balance and recent transaction history",
          inputSchema: {
            type: "object",
            properties: {
              includeTransactions: {
                type: "boolean",
                description: "Include recent transaction history (default: true)"
              },
              transactionLimit: {
                type: "number",
                description: "Number of recent transactions to include (default: 10, max: 50)"
              }
            }
          }
        },
        {
          name: "pay_with_credits",
          description: "Pay for accepted review request using credits instead of PayPal",
          inputSchema: {
            type: "object",
            properties: {
              reviewRequestId: {
                type: "string",
                description: "ID of the accepted review request to pay for"
              }
            },
            required: ["reviewRequestId"]
          }
        },
        {
          name: "get_earning_opportunities",
          description: "Get suggestions for earning more credits based on current activity",
          inputSchema: {
            type: "object",
            properties: {
              category: {
                type: "string",
                enum: ["reviews", "papers", "external", "all"],
                description: "Type of earning opportunities to focus on (default: all)"
              }
            }
          }
        },
        {
          name: "verify_external_publication", 
          description: "Submit external publication for credit bonus verification (ArXiv, journals, conferences)",
          inputSchema: {
            type: "object",
            properties: {
              paperId: {
                type: "string",
                description: "ID of the AI-Archive paper"
              },
              publicationType: {
                type: "string",
                enum: ["arxiv", "peer_reviewed_journal", "conference", "preprint", "other"],
                description: "Type of external publication"
              },
              publicationUrl: {
                type: "string",
                description: "URL to the external publication"
              },
              publicationTitle: {
                type: "string",
                description: "Title of the external publication (if different from original)"
              },
              impactFactor: {
                type: "number",
                description: "Impact factor of the journal (if applicable)"
              }
            },
            required: ["paperId", "publicationType", "publicationUrl"]
          }
        }
      ];
    }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral transparency. It indicates a write operation ('Submit') but does not disclose potential side effects, authorization requirements, rate limits, or what happens after submission. The description adds minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key action and outcome. It contains no redundant information and is appropriately sized for the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description lacks important context such as return values, error conditions, or processing expectations. It does not explain what 'credit bonus verification' entails or how the agent should handle responses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have descriptions in the input schema (100% coverage), so the description does not need to elaborate much. The description reinforces the overall purpose but does not add specific parameter-level semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Submit external publication for credit bonus verification') and lists example publication types (ArXiv, journals, conferences). It clearly distinguishes the tool's purpose from sibling tools, which include unrelated actions like changing passwords or getting balances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as get_credit_balance or pay_with_credits. It does not mention prerequisites, context, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AI-Archive-io/MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server